union联合、合并:将多条查询语句的结果合并成一个结果,union 注入攻击为一种手工测试。
注入思路:
A:判断是否存在注入点http://xxxxxxxxx?id=1
1' 异常 1 and 1=1 返回结果和 id=1 一样
1 and 1=2 异常
从而则一定存在 SQL 注入漏洞
B:order by 1-99 语句来查询该数据表的字段数
C:利用获得的列数使用联合查询,union select 与前面的字段数一样
找到了数据呈现的位置http://xxxxxxx?id=1 union select 1,2,3,4,5,6
D:根据显示内容确定查询语句的位置,利用 information_schema
依次进行查询 schemata, tables,columns
E:已知库名、表名和字段名,接下来就爆数据
例题
我们以sqli-labs的第一关为例,来具体理解union联合查询注入的方法,理解每一步我为什么要这么去做。
好的,我们开始第一关!
首先查看sqli-labs第一关
这是第一关初始界面,在url界面输入?id=1 发现有回显,给我们回显了两个数据
当我们输入?id=1’ 时出现