爆库原理剖析

一、方式

暴库的方式有多种多样,我知道的就有3种以上,常见的暴的方法有:%5c类暴,conn.asp暴,ddos暴等等

二、原理

“%5c"暴库法,它不是网页本身的漏洞,而是利用了IIS解码方式中的一个特性,如果IIS安全设置不周全,而网页设计者未考虑IIS错误,就会被人利用。
  为何要用”%5c"?它实际上是"“的十六进制代码,也就是”"的另一种表示法。在电脑中,它们是一个东东。

但提交"“和”%5c"却会产生不同的结果,在ie中,我们把下面第一个地址中的"/“换成”"提交:
_blank>http://www.hack58.com/soft\view.asp?id=58

_blank>http://www.hack58.com/soft\view.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/hack58.mdb”)
conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
%>

大家注意第4句:DBPath = Server.MapPath(“admin/hack58.mdb”),Server.MapPath方法的作用是将网站中的相对路径转变成物理上的绝对路径。为何要这样?因为连接数据库时,须指明它的绝对路径。
(这里可能有人不明白,什么相对路径、绝对路径?IIS为了不让访问者知道真实的实际路径,并且确保网站不因变换地址而影响使用,它采用了一种相对路径来表示目录与文件之间的关系。也就是网址目录只表示从根目录起的相对位置。)
  比如:上面的网站中,网站:http://www.hack58.com/的根目录为:“E:\web”,下载目录则在根目录(E:\web)内的"soft"下,我们网站访问该站时,就是在访问E:\web\soft\目录,而http://www.hack58.com/soft/admin/,它只表明了admin与soft这个目录的相对关系,把这个网站放在D:盘,也一样不改变admin位于soft目录下的关系。

当Server.MapPath方法将相对路径转为真实路径时,它实际是三部分路径加在一起得到真实路径的:网页目前执行时所在的相对路径,也就是从网站物理根目录起的相对路径,比如上面例子中conn.asp处在从根目录起的"/soft/“下;然后调用的数据库的相对路径是admin/hack58.mdb,这样就得到从根目录起的完整相对路径:”/soft/admin/hack58.mdb"。

这些都只是相对的路径,如何变为真实路径呢?
  设置过iis的人都会知道,每一个网站,都必须指定它在硬盘上的物理目录,比如上例中,网站根目录所在的物理目录为:“E:\web”,Server.MapPath方法正是通过把"网站根目录的物理地址+完整的相对路径",从而得到真实的物理路径。这样,数据库在硬盘上的物理路径是:E:\web\soft\admin\hack58.mdb。
 在这里,IIS以"“表示真实路径的目录关系,而以”/“表示虚拟路径,这可能就是IE会自动把我们地址中的”“转为”/"的原因吧。

明白这些,我们再来理解暴库就不难了,当我们提交_blank>http://www.hack58.com/soft\view.asp?id=58时,view.asp调用conn.asp后,得到的网页相对路径是这样的:/soft\ (见上),再加上"admin/hack58.mdb",就得到"/soft"+admin/hack58.mdb。在iis中,"/“和”“代表着不同的意义,遇到了”"时,认为它已到了根目录所在的物理路径,不再往上解析(为何不再往上解析?后面还会分析的),于是网站的完整相对路径变成了
:“admin/hack58.mdb”,再加上根目录的物理路径,得到的真实路径变成:“e:\web\admin\hack58.mdb”,而这个路径是不存在的,数据库连接当然会失败,于是IIS会报错,并给出错误原因:
Microsoft JET Database Engine 错误 ‘80004005’

'e:\web\admin\hack58.mdb’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/soft/conn.asp,行12
这就是暴库语句的原因

三、条件

个人认为暴库的条件:

1、一般的错误返回页面是本地IE提供的,所以我们先得关了本地的错误页面,具体在菜单项的‘工具->internet选项->高级->显示友好信息‘

2、对方数据库要是Access型。

3、是数据库连接中没有加入容错代码 所以导致错误不能跳过而活生生的把数据文件连接暴出来

4、 对方的IIS没有关闭错误提示 只要关了错误提示就算你怎么暴也没有用

5、不一定要2级目录 但是肯定的是一级目录是绝对不成功的

6、要成功一定要调用到数据库 不一定是view.asp?id=58 这种类别的 只要是提交或者检测数据的基本都可以

四、注意

1、遇到到ASP或ASA等用迅雷下载后改成MDB后缀照用

2、遇到#改成23%后下载

3、遇到加密的解密后查看相关信息

4、遇到MD5密码去网站解密

5、直接浏览Conn.asp文件遇到空间时查看源文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值