1. 使用and 1=1 与 and 1=2判断是否存在注入点
原理实验 :
正常查询下
加上and 1=1:
and 1=2:
2. 判断当前查询表的列数,也即字段数
原理:使用order by (列序号<从1开始>)判断,若有查询结果则说明对应列序号的列存在
实验:
对应列存在:
对应列不存在:
3. 查看表字段值在当前页面的显示位置
原理:使用一个不存在的id值使正常查询结果为空,联合查询union select 1,2,3,4...(这里实际什么数字都行,只是为了定位后面步骤回显的位置)
实验:
正常联合查询结果如下
我们利用错误id值就可以使前一个查询的结果为空,此时观察页面中哪些位置出现了这些数字。
4. 确定回显位置后开始信息收集
查看当前数据库用户可决定后期操作的权限;
得知数据库名可以为下一步获取数据提供便利;
获取数据库版本信息将成为下一步获取信息的方式的判断依据(MySQL5.0以后版本中有默information_schema);
操作系统信息将为渗透后期提供一定信息;
5. 开始获取数据
(1)获取表名
(2)获取表中字段名
(3)获取表中数据
补充:
SELECT 1,2,3...的含义及其在SQL注入中的用法_BUAA小细腿的博客-优快云博客_select1是什么意思