在线咨询
QQ咨询
服务热线
服务热线:13125520620
TOP

对暴库的一点认识-数据库

发布时间:2011-11-12 浏览:5024

去年的时候曾经有一段时间研究过ie双解码,所以对暴库有一定的认识,前些天终于收到黑客的杂志,里面看了一篇临的文章,下面我也谈谈个人对那篇文章的认识,这里要说的是,大家如果再深入点研究下去,就会发现,暴库的利用不只是这么简单,还会有更多可以用的东东。
暴库的方式有多种多样,我知道的就有3种以上,常见的暴的方法有:%5c类暴,conn.asp暴,ddos暴等等.
这篇文章我主要讲%5c和conn.asp暴.
可以说,这篇是对临国越南首相写的文章的补充.

1.%5c暴法
下面我们先用肉鸡来试一下
http://www.yianxin.com/e-market/bbs/select.asp
暴:
http://www.yianxin.com/e-market/bbs%5cselect.asp
返回信息如下:
microsoft jet database engine 错误 `80004005`

`d:wwwyianxin.comgr7shg3l26e-marketdatayianxinlzn.asp`不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/e-market/bbs/conn.asp,行3

我们来看一下真实路径和暴出的路径
d:wwwyianxin.comgr7shg3l26e-marketdatayianxinlzn.asp 暴出的路径
d:wwwyianxin.comgr7shg3l26e-marketbsdatayianxinlzn.asp 真实的路径
对比后我们发现暴出来的少了一个bbs
这里我们还发现%5c就相当于一个休止符返回的路径就变成
绝对路径+%5c后面的内容
我们再来看一下对暴不出来的分析
肉鸡: http://www.guilin.com.cn/renrenbbs/body.asp?id=516
暴url: http://www.guilin.com.cn/renrenbbs%5cbody.asp?id=516

肉鸡: http://www.jijiahao.com/guest/default.asp
暴url: http://www.jijiahao.com/guest%5cdefault.asp

我们再来分析一下成功与失败的原因:
http://www.yianxin.com/e-market/bbs%5cselect.asp
会暴成功库,我们打开select.asp我们会发现里面

也就是说有调用到其它文件
所以当你用%5c时,返回路径也就变成了
绝对路径+%5c后面的select.asp,select.asp又调用到路径库data/renren.asp
所以返回的路径就变成了
绝对路径+路据库路径,而在绝对路径和路据库路径,我们知道有guest这个目录,
这个时候因为绝对路径+路据库路径不存在(绝对路径+guest+路据库路径才存在)
所以也就返回了,我们所看到的出错信息。
现在再来分析一下失败的原因:
我个人认为是因为iis双解码的原因,
例如,对于``这个字符,正常编码后是%5c。这三个字符对应的编码为:
`%` = %25
`5` = %35
`c` = %63

如果要对这三个字符再做一次编码,就可以有多种形式,例如:
%255c
%%35c
%%35%63
%25%35%63
...

因此,".."就可以表示成"..%255c"或"..%%35c"等等形式。

在经过第一次解码之后,变成"..%5c"。iis会认为这是一个正常的字符串,不会违反安全规则检查。而在第二次被解码之后,就会变成".."。因此攻击者就可以使用".."来进行目录遍历,执行web目录之外的任意程序。

详细的大家可以看下面的资料参考

我们再来分析失败的原因就会发现,他可能解析成../,通过图的比较可以分析出来,难道这时就暴不出来了吗,当然不是,这要我们精心构造。
下面还会分析到。

下面我们来纠正一下网上常见的错误观点。
1.不一定要asp?id=的才可以暴,只要有调用其它有文件就有可能暴
2.不一定是access,也可以是mssql,我就成功过,下面大总结的时候就会分析到只要是iis就有可能成功
3.不一定要调用到数据库,因为%5c的关键是调用,而不是一定是数据库.
4.理论上讲,根目录通过精心构造是可以暴的,但有些人说的通过..%5c的却一定暴不出来,因为返回是取%5c后面的与前面的无关
5.并不是说多层目录就暴的成功率就高,%5c能否成功关键是看系统怎么解析,另外我个人觉得能否暴出与程序无关,更多的与系统有关,不信大家去百度找同一板本的人人留言板,你就会发现有的可以暴出来,有的却暴不了出来。
好了,上面是对%5c暴库的初步了解

2.conn.asp暴
conn.asp暴可以说,与系统无关,是因为目录的关系。
我用netbox架设同样可以暴,而%5c是iis解码错误,有那个漏洞的一定是windows系统.
同样,我们还是通过比较来说明问题
肉鸡:http://192.168.0.55/ren/
暴1 : http://192.168.0.55/ren/images/conn.asp
暴2 : http://192.168.0.55/ren/conn.asp
其中暴1里面的conn.asp是从暴2里面复制过去的
返回内容:
暴1:
microsoft jet database engine `80004005`

`c:documents and settingsxiaoqiu桌面wwwroot enimagesdata enren.asp`不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

wwwroot enimagesconn.asp, line 3

暴2:
全是白白。
再来分析为什么conn.asp可以暴出来
conn.asp代码如下:

其中最重要的是
set conn=server.createobject("adodb.connection")
conn.open="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/renren.asp")
这两句,这两句也是能暴出的关键.我们再来先看暴出的路径和真实路径的差别
c:documents and settingsxiaoqiu桌面wwwroot enimagesdata enren.asp 暴出的路径
c:documents and settingsxiaoqiu桌面wwwroot endata enren.asp 真实的路径
我们会发现多了一个images,这是因为,conn.asp的返回路径是绝对路径+conn.asp前的+conn.asp连接的数据库路径像上面的就等于绝对路径c:documents and settingsxiaoqiu桌面wwwroot+conn.asp前面的ren/images+
data enren.asp也就是数据库路径,合起来就是
c:documents and settingsxiaoqiu桌面wwwroot+renimages+data enren.asp
不同连接语法返回路径不一定一样,但是上面的连接语句返回的却一定是绝对路径
下面我们再来验证一下我们的正确性,把下面的内容保存为任何一个经过asp.dll解析过扩展的文件,如
linzi.asp,linzi.cdx等等,代码内容如下:

这个时候你把他放在任何一个目录,只要不是ren目录里,也就是留言簿的根目录,都可以暴出绝对路径,这个时候你可能会问,难道根目录就暴不出了吗?答案是可以暴出来。你把上面代码里的
data/renren.asp改成任何一个不存在的目录或文件,也同样可以暴出来,例如,我改成
data123/renren.asp,因为data123不存在,所以就暴了出来,返回内容如下

microsoft jet database engine `80004005`

`c:documents and settingsxiaoqiu桌面wwwroot endata123 enren.asp`不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

wwwroot en2.asp, line 3
我们还可以发现,并没有少目录,只不过目录出错,经过一大堆的测试,我个人总结出conn.asp暴成功的原因以及对网上一些错误观点的个人看法:
1.要暴不一定要调用到数据库,但是要暴库,一定要调到到数据库或与数据库有关的文件。
2.不一定conn.asp才可以暴,只要有调用其它文件,造成目录错误的都可以报,如动力的除了inc/conn.asp
外,放在inc里面的其它文件同样也可以暴。
3.总结conn.asp的暴原因是你返回的目录和真实的目录不一定,或者也可以说是不存在。

3.暴的简单利用:
1.下载数据库进后台找上传点,然后得到webshell
2.往数据库里面插入asp小马,详细的可以参考angel的文章《把mdb改成asp带来的灾难》
3.access跨库查询
如语句:
select count(*) from dv_admin in `d:wwwdatadvbbs7.mdb`
4.注入时的利用,如mssql backup a shell
5.绕过后台验证,详细的可以见我收集的暴库文摘

好了,就这么些吧,上面可以说只是暴后攻击的冰山一角,当你再深入下去,你会发现还有更恐怖
的东西在后面,2k+sp4有人利用双解码成功了,这也只是一角。
还有这里要说一下的是,有的人说用asp.dll解析mdb用来防下载,事实上稍微不笨的人,就会发现这是一种愚蠢的做法,当你用asp.dll解析mdb后,你把newmmm.asp改成newmm.mdb上传后,就相当于一个newmm.asp,因为asp.dll解析过的扩展只要里面有asp语句就会被执行,这和cer,cdx等,一个道理.我个人认为防下载的最好方法是往数据库里加入防下载表段结束符,当然你可以说,可以注是,事实上,注是是不可能的事,除非你得到了shell,修改数据库,否则你就别想了,因为就算让你加上了两个%>结束符,但是因为里面的东西不满足asp语法,也会发生
500错误。不信?要不你试试动网,动网的数据库就是这样。

4.防范:
1.最好的办法临在文章里也说过了,就是屏所有的出错。
2.加容错语句,不过要注意的是,你加了容错,只能是你加的那个文件暴不出来,但并不代表,其它文件暴不出来。
3.把数据库在非相对路径下,例如:你本来的路据库路径是:c:wwwdatadvbbs.asp,这时你可以把数据库改放在c:里,这样就下载不到数据库
好了,防的方法就说到这里了。因为我说的都是废话,大家都看过的.

5.%5c暴与conn.asp总结:
可以说%5c暴是因为调用文件出错,而conn.asp暴是因为返回的路径出错或不存在。

6.conn.asp与%5c的结合:
可以说如何构造是入侵时能不能暴出的关键。
现在我们假设,guest目录放在c:www下,而conn.asp放在c:wwwguestconn.asp,直接调用
http://192.168.0.13/guest/conn.asp不会报错,因为返回路径是正确的,通过上面的,我们可以知道
conn.asp暴是因为返回路不存在。现在我们对比一下%5c和conn.asp的不同返回路径
1.%5c : 绝对路径+%5c后面的内容
2.conn.asp : 绝对路径+conn.asp前面的相对路径+conn.asp调用的数据库路径
两者结合起来,假设http://192.168.1.13/guest%5ccoonn.asp
那么返回路径也就变成了绝对路径+conn.asp,但实际在入侵之时,我们会发现有的时候并不是,这个时候大家别忘了双解码好了,我只提出思路,实际的入侵方法,我想你可能已经想到。

TAG
软件定制,软件开发,瀚森HANSEN
0
该内容对我有帮助