%5c暴库原理

%5c暴库原理

作者:sasa 发布于:2012-5-21 20:26 Monday 分类:Web渗透

        暴库有两个方法,第一个就是利用%5c,另外一个conn.asp暴库。而且这里的暴库是针对access数据库的,而和access搭配的脚本一般是asp,因此出现暴库的一般为asp类型站点。

        %5c暴库

        简单点说,就是在打开页面的时候把网页中的/换成%5c,然后提交就可以得到数据库地址了,但并不是所有页面都可以成功,而需要asp?id=这样的地址。因为这样的网址表示页面调用了数据库,也就是说如果你知道一个文件调用了数据库,如search.asp,vote.asp等,都有可能导致暴库漏洞。

        举个例子:http://www.test.com/test/vote.asp?id=123,当把第二个/换成%5c的时候就会出现类似如下错误信息:

        Microsoft JET Database Engine 错误 ‘80004005’

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

        /test/conn.asp.行12

        为什么会出现这样的情况呢?这得和IIS的解析联系起来。%5c是\的十六进制代码,也就是\的另一种表示方法,我们在提交网页的时候,IE会自动把%5c转换成/,从而得到同一地址。这里问题就来了,在asp类型网站中,都会用到一个数据库连接的文件,名字一般是conn.asp,内容大概如下:

        <%

            dim conn

            dim dbpath

            set conn= server.createobject("adodb.connection")

            DBPath = Server.MapPath("test/test.mdb")

            conn.Open "driver={Mirosoft Access Driver{*.mdb}};dbq="& DBPath

        %>

        DBPath = Server.MapPath("test/test.mdb")这句话的作用是将网站中的相对路径转变成物理上的绝对路径。因为在连接数据库时,应该指明他的绝对路径,这样就得到了数据库绝对路径D:\123\ceshi\test\test.mdb

        可IIS就不这样认为了,因为来了一个%5c(也就是\),虽然IE解析的时候是一个意思,可在IIS这里却认为访问到了\这里就到了根目录的地方,而不再网上解析了。也是刚才的路径在IIS眼里就是d:/123/test/test.mdb,是不存在的,所以就报错了。

        以前有人提到过利用多目录能够提高报错的几率,其实这种方法是不太正确的。因为IIS在遇到%5c以后就会停止向上解析,所以无论你中间构造多少个目录,并且无论是真假,都会被舍弃,相对路径还是跟目录,是不会报错的。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值