返回列表 发帖

暴库的一点认识

去年的时候曾经有一段时间研究过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:\www\yianxin.comgr7shg3l26\e-market\data\yianxinlzn.asp';不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 /e-market/bbs/conn.asp,行3 我们来看一下真实路径和暴出的路径 d:\www\yianxin.comgr7shg3l26\e-market\data\yianxinlzn.asp 暴出的路径 d:\www\yianxin.comgr7shg3l26\e-market\bbs\data\yianxinlzn.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 settings\xiaoqiu\桌面\wwwroot\ren\images\data\renren.asp';不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 \wwwroot\ren\images\conn.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") set rs=server.createobject("adodb.recordset") function connclose conn.close set conn = nothing end function function errmsg(message) session("err")=message response.redirect"err.asp" end function %> 其中最重要的是 set conn=server.createobject("adodb.connection") conn.open="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/renren.asp") 这两句,这两句也是能暴出的关键. 我们再来先看暴出的路径和真实路径的差别 c:\documents and settings\xiaoqiu\桌面\wwwroot\ren\images\data\renren.asp 暴出的路径 c:\documents and settings\xiaoqiu\桌面\wwwroot\ren\data\renren.asp 真实的路径 我们会发现多了一个images,这是因为,conn.asp的返回路径是 绝对路径+conn.asp前的+conn.asp连接的数据库路径 像上面的就等于绝对路径c:\documents and settings\xiaoqiu\桌面\wwwroot+conn.asp前面的ren/images+ data\renren.asp也就是数据库路径,合起来就是 c:\documents and settings\xiaoqiu\桌面\wwwroot\+ren\images\+data\renren.asp 不同连接语法返回路径不一定一样,但是上面的连接语句返回的却一定是绝对路径 下面我们再来验证一下我们的正确性,把下面的内容保存为任何一个经过asp.dll解析过扩展的文件,如 linzi.asp,linzi.cdx等等,代码内容如下: <% set conn=server.createobject("adodb.connection") conn.open="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/renren.asp") %> 这个时候你把他放在任何一个目录,只要不是ren目录里,也就是留言簿的根目录,都可以暴出绝对路径, 这个时候你可能会问,难道根目录就暴不出了吗?答案是可以暴出来。你把上面代码里的 data/renren.asp改成任何一个不存在的目录或文件,也同样可以暴出来,例如,我改成 data123/renren.asp,因为data123不存在,所以就暴了出来,返回内容如下 microsoft jet database engine ';80004005'; ';c:\documents and settings\xiaoqiu\桌面\wwwroot\ren\data123\renren.asp';不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 \wwwroot\ren\2.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:\www\data\dvbbs7.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等,一个道理. 我个人认为防下载的最好方法是往数据库里加入防下载表段<% zhenzhen520 <%,只要插入这个就可以 防下载了,懂点asp的人都知道,<% zhenzhen520 <%放到数据库里,一定会发生语法错误,因为没有%> 结束符,当然你可以说,可以注是,事实上,注是是不可能的事,除非你得到了shell,修改数据库,否 则你就别想了,因为就算让你加上了两个%>结束符,但是因为<%%>里面的东西不满足asp语法,也会发生 500错误。不信?要不你试试动网,动网的数据库就是这样。 4.防范: 1.最好的办法临在文章里也说过了,就是屏所有的出错。 2.加容错语句,不过要注意的是,你加了容错,只能是你加的那个文件暴不出来,但并不代表,其它文件 暴不出来。 3.把数据库在非相对路径下,例如:你本来的路据库路径是:c:\www\data\dvbbs.asp,这时你可以把数 据库改放在c:\里,这样就下载不到数据库。 好了,防的方法就说到这里了。因为我说的都是废话,大家都看过的. 5.%5c暴与conn.asp总结: 可以说%5c暴是因为调用文件出错,而conn.asp暴是因为返回的路径出错或不存在。 6.conn.asp与%5c的结合: 可以说如何构造是入侵时能不能暴出的关键。 现在我们假设,guest目录放在c:\www\下,而conn.asp放在c:\www\guest\conn.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,但实际在入侵之时,我们会发现有的时候并不是,这个时候大家别忘了双解码 好了,我只提出思路,实际的入侵方法,我想你可能已经想到。

暴库的一点认识

不太明白

咳,电脑好难啊

TOP

返回列表 回复 发帖