流程
1.判断是否存在注入,注入是字符型还是数字型。
2.猜解SQL查询语句中的字段数。
3.确定显示位。
4.获取当前数据库。
5.获取数据库中的表。
6.获取表中的字段数。
7.下载数据。
思路
如何快速判断是否有注入:
1. 使用 '" 查看是否报错
报错 基本可以确定有 -- 语句没有闭合
2. 查看两者返回结果是否一致
SELECT * FROM users WHERE id=1 AND 1=1;
SELECT * FROM users WHERE id=1 AND 1=2;
1=2 没结果 说明有SQL注入
3.观察页面响应时间是否有指定时间的延迟
SELECT * FROM users WHERE id=1 AND SLEEP(时间/s);
查看 ID +/-1 页面是否有回显且变化
有变化 --- 联合查询注入
判断是整数型还是字符型
查看 ID=2-1 页面
整数型:与ID=1一致
直接注入
字符型:与ID=2一致
需要先闭合字符(' " 或其他),或者需要注释才能注入
输入ID=1'判断如何闭合
判断字段数即列数:SELECT * FROM users WHERE id=1 ORDER BY 1;
ORDER 数字 :表示按照第数字列排序 当该数字大于表列数时会报错
无回显/变化 --- 查看是否有报错
有报错 --- 报错注入
用 and 1=1 与 and 1=2 辅助判断是字符型还是整数型以及字符串闭合方式
无报错且无回显 --- 查看是否有布尔类型状态
有:布尔注入
无:延时注入