SqlInject

概述

产生原因

开发者未严格过滤用户传入的参数,导致恶意sql语句拼接到了sql语句中。

影响

拖库

修改数据库数据

获取网站控制权

分类

根据利用方式划分

联合查询注入

报错注入

布尔盲注

时间盲注

根据sql语句类型分

select型(最常见)

update型

insert型

delete型

特殊注入方式

宽字节注入

二次编码注入

二阶注入

堆叠注入

挖掘

黑盒

手动一般测试方法:

实现网站正常功能

测试闭合符号

寻找回显位

获取信息

白盒

php重点函数mysqli_query

观察执行sql语句的位置是否存在不安全拼接

攻防

利用

mysql中获取数据库信息

mysql写shell

日志

INTO OUTFILE

防御

PDO预处理

最小化数据库权限

站库分离

绕过防御

各种编码

其他

工具

[[sqlmap]]

靶场

[[sqli-labs]]

文章