SQL注入原理及实践(一)–SQL注入之联合查询
1)判断注入类型
一般采用【1and1=2】去判断,当输入【1and1=2】时,
如果报错,则为数字型注入,
如果显示正常,则为字符型注入
原理如下:
假设数据库执行命令为:select * from table_name where id=$id
$id为用户所控,当输入【1and1=2】时
如果该注入为数字型,则将会显示如下:
select * from table_name where id=1and1=2
该语句中,id=1为真;1=2为假;and连接,则 id=1and1=2为假,则将会报错。
如果该注入为字符型,则将会显示如下:
select * from table_name where id=‘1and1=2’,‘1and1=2’是一个整体的字符型,所以输出正常。
2)联合查询
假设以上已确认为字符型注入,联合查询思路如下:
①联合查询:联合两个表进行注入攻击,对两个表进行联合查询【要求:两个表的字段数需要相同】
②字段数查询:为确认表的字段数,我们可以使用order by进行查询