web基础漏洞-sql注入
1、介绍
sql注入,攻击者从前端提交的数据,未经过严格检查,别拼接到sql语句中,交给了sql应用执行。从而可能导致恶意构造的payload破坏原有的sql语句结构,执行超预期的功能,造成危害。
- 几乎所有的sql应用都存在sql注入漏洞,但一般讨论和测试时以mysql为主
- 预编译可以有效防止sql注入漏洞,在几乎所有服务端语言的连接sql的框架中被提供选择
- 防火墙和对参数的检查,可以一定程度防止sql注入
2、sql注入类型
2.1 超范围执行
- 针对update、delete、select语句,构造超出当前用户权限的where判断,从而超范围执行删改查操作。
2.2 查询判断
- 主要针对注册、登录等场景,服务端sql查询判断条件是否满足,构造payload以满足或不满足,然后执行超预期的流程。比如任意账号登录
2.3 赋值
- 针对insert和update语句,将查询内容写入字段。实现将查询的权限外内容写入合法的权限内
2.4 联合查询
- order by确认查询字段数
- union select 1,2..n,确认是单查询还是集合查询,以及查询参数与输出点对应关系
- union select version(), user()..,查询基本信息
2.5 布尔盲注
2.6 时间盲注
2.7 报错注入
2.8 堆栈注入
2.9 系统命令注入
2.10 文件读写
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战