概述
产生原因
开发者未严格过滤用户传入的参数,导致恶意sql语句拼接到了sql语句中。
影响
拖库
修改数据库数据
获取网站控制权
分类
根据利用方式划分
联合查询注入
报错注入
布尔盲注
时间盲注
根据sql语句类型分
select型(最常见)
update型
insert型
delete型
特殊注入方式
宽字节注入
二次编码注入
二阶注入
堆叠注入
挖掘
黑盒
手动一般测试方法:
实现网站正常功能
测试闭合符号
寻找回显位
获取信息
白盒
php重点函数mysqli_query
观察执行sql语句的位置是否存在不安全拼接
攻防
利用
mysql中获取数据库信息
mysql写shell
日志
INTO OUTFILE
防御
PDO预处理
最小化数据库权限
站库分离
绕过防御
各种编码
其他
工具
[[sqlmap]]
靶场
[[sqli-labs]]