网站暴库原理与方法剖析
一、方式暴库的方式有多种多样,我知道的就有3种以上,常见的暴的方法有:%5c类暴,conn.asp暴,ddos暴等等
来源https://my.oschina.net/gar1024/blog/808940
二、原理
“%5c”暴库法,它不是网页本身的漏洞,而是利用了IIS解码方式中的一个特性,如果IIS安全设置不周全,
而网页设计者未考虑IIS错误,就会被人利用。
为何要用”%5c”?它实际上是”\”的十六进制代码,也就是”\”的另一种表示法。在电脑中,它们是一个东东。
但提交”\”和”%5c”却会产生不同的结果,在ie中,我们把下面第一个地址中的”/”换成”\”提交:
_blank>http://www.exehack.net/soft\view.asp?id=58
_blank>http://www.exehack.net/soft%5cview.asp?id=58
二者的访问结果是一样的。ie会自动把”\”转变成”/”,从而访问到同一地址。
但是,当我们把”/”换成十六进制写法”%5c”时,ie不会对此进行转换。地址中的”%5c”被原样提交了。
当IIS收到后解析时,又会将%5c还原成”\”。这样,iis中网址的相对路径就变成/Soft/html\13/。这一点很重要。问题正是从这里开始的。
在ASP网页中,凡调用数据库时,都会用到一个连接数据库的网页conn.asp,它会创建一个数据库连接对象,定义要调用的数据库路径
一个典型的conn.asp如下:
<% dim conn
dim dbpath set conn=server.createobject("adodb.connection") DBPath =Server.MapPath("admin/exehack.mdb") conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath %>
大家注意第4句:DBPath = Server.MapPath(“admin/exehack.mdb”),Server.MapPath方法的作用是将网站中的相对路径转变成物理上的绝对路径。
为何要这样?因为连接数据库时,须指明它的绝对路径。
(这里可能有人不明白,什么相对路径、绝对路径?IIS为了不让访问者知道真实的实际路径,并且确保网站不因变换地址而影响使用,它采用了一种相对路径来表示目录与文件之间的关系。也就是网址目录只表示从根目录起的相对位置。)
比如:上面的网站中,网站:http://www.chncto.com的根目录为:”E:\web\”,
下载目录则在根目录(E:\web\)内的”soft”下,我们网站访问该站时,就是在访问E:\web\soft\目录
而http://www.chncto.com/soft/admin/,它只表明了admin与soft这个目录的相对关系
把这个网站放在D:盘,也一样不改变admin位于soft目录下的关系。
标签:渗透 来的朋友,还请多多回复一下 既然认真看完了那就回复一下吧。
RE: 网站暴库原理与方法剖析
虽然是老洞了,但是我还是认真看完了,但是还是不明白其中的原理(挖到这个洞的人因为什么思维而挖到这个洞的原理),然后百度找下下相关的两篇文章看了下,发现发现好像懂了,但是认真在回顾下,好像又没懂,
不知道是不是通过访问/new %5c xxx.asp?id=1文件,包含到了类似conn.asp得文件,然后在这个文件中对数据库的绝对路径进行了放问,才导致的爆库。
但是为啥/就不能呢。
好吧,懂了,本来没懂,但是发现发以上评论的时候突然懂了,妈的!
回帖是一种美德。
Re: 网站暴库原理与方法剖析
楼主的分析很清晰,把%5c暴库的原理讲透了。其实这类漏洞的核心在于IIS在处理%5c时与ASP的Server.MapPath结合,导致路径解析出现偏差,进而暴露数据库文件的真实路径。对于站长来说,除了修补IIS配置,更根本的做法是不要把数据库放在web目录下,或者使用难猜的路径和文件名,同时给mdb文件加上扩展名伪装。感谢分享这个经典案例,对理解早期ASP网站的安全缺陷很有帮助。Re: 网站暴库原理与方法剖析
感谢楼主的分享,对%5c暴库的原理讲得很清楚。我之前只知道这类漏洞,但一直没深究IIS解码和Server.MapPath之间的具体配合关系,看了你的分析后豁然开朗。有一点想请教:在实际利用时,是不是还需要数据库路径可猜测(比如常见的admin/exehack.mdb),或者通过报错信息来推断路径?另外,现在的主流IIS版本对这种%5c解码还会生效吗?期待楼主或其他懂行的朋友继续聊聊。Re: 网站暴库原理与方法剖析
这个帖子讲得很清晰,尤其是把%5c和\的区别、IIS解码机制以及conn.asp中Server.MapPath的调用逻辑串联起来,让人能直观理解暴库的根本原因。以前只知道%5c可以暴路径,但没深究过原理,楼主这么一拆解就通了。 另外文中提到还有其他暴库方式(比如conn.asp暴、ddos暴),如果楼主后续能补上那几种的具体利用场景和防御思路,那就更完整了。感谢分享!
页:
[1]