脚本安全之第二章 ACCESS暴库

2009, October 31, 5:07 PM. 原创笔记
Submitted by admin

首先,关了IE的友好错误信息,在IE的工具->internet选项->高级->显示友好HTTP错误信息,这样,才能返回错误信息显示给我们。

暴库,顾名思义,就是暴出数据库,因为IIS服务器会对每个执行错误给出详细说明,并停止执行,IIS的默认设置又是将错误信息返回给用户,然后用户得到数据,就可以利用数据库里面的用户名和密码进行近一步利用。
一般暴库可以分为两种,conn暴库法和%5C暴库法。


在学习暴库之前,我们先来学习两个名词,绝对路径和相对路径。

绝对路径:相对于计算机中存在的文件的明确描述的路径。

比如:我blog http://www.st999.cn/blog,而blog存在服务器中的路径为d:\wwwroot\blog,这个“d:\wwwroot\blog”就是绝对路径了。

相对路径:相对于绝对路径下的文件地址。

假设在我的blog下还有个admin目录,admin的绝对路径是d:\wwwroot\blog\admin,当我们访问admin时,则是以

http://www.st999.cn/blog/admin这样的方式来访问,那么http://www.st999.cn/blog/admin中的/blog/admin则是相对于绝对路径d:\wwwroot下的一个路径,它们起着一个对比的关系。

一. conn暴库法
conn暴库法,正确的说法应该是数据库链接文件暴库法。

数据库链接文件,它通常是以conn.asp命名的,所以,又叫conn暴库法。当然,也有人把数据库链接文件的名字可以换成st999.asp这些什么的。如果存在漏洞的话,我们可以直接访问conn.asp文件,直接暴出数据库路径,如果是以st999.asp命名的话,直接访问st999.asp也是一样能成功的。

一般conn.asp文件是存放在inc目录下的。

一个典型的conn.asp如下:

<%
dim conn
dim dbpath
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("data/data.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>

在DBPath = Server.MapPath("data/data.mdb")这一句中,Server.MapPath把相对路径“data/data.mdb”转换为绝对路径,链接数据库时用的必需是绝对路径,而不能使用相对路径。
Server.MapPath的转换方法,实际上是相对路径加网站根目录的绝对路径从而得到数据库的路径,DBPath = Server.MapPath("data/data.mdb")这个得到的绝对的数据库路径为d:\wwwroot\blog\data\data.mdb。(data/data.mdb+d:\wwwroot\blog=d:\wwwroot\blog\data\data.mdb)

不知大家有没有看到,data/data.mdb和d:\wwwroot\blog中的"/""\"两个是不同的,

在IIS中,“\“表示真实的绝对路径,”/“表示相对的虚拟路径。

在文章的最前面,我们就说过,因为IIS服务器会对每个执行错误给出详细说明。

当我们访问正常的文件时,比如:http//www.st999.cn/blog/admin_login.asp时,它发生了调用数据库的动作:http://www.st999.cn/blog/data/data.mdb,这个数据库是正确的,不会发生什么错误;而当我们直接访问inc/conn.asp文件时,它发生了这样的调用关系:http://www.st999.cn/blog/inc/data/data.mdb,这样的数据库地址当然是错误的,于是,IIS就给出了错误提示 :

Microsoft JET Database Engine 错误 '80004005'

'd:\wwwroot\blog\inc\data\data.mdb‘不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/blog/inc/CONN.ASP,行16

'd:\wwwroot\blog\inc\data\data.mdb‘,这个地址,当然是错误的了,正确的地址是"d:\wwwroot\blog\data\data.mdb",多了个INC的目录。

我发上几张图,是存在有conn暴库漏洞网站的。

大小: 64.42 K
尺寸: 500 x 184
浏览: 54 次
点击打开新窗口浏览全图大小: 45.82 K
尺寸: 500 x 219
浏览: 46 次
点击打开新窗口浏览全图大小: 38.55 K
尺寸: 500 x 236
浏览: 48 次
点击打开新窗口浏览全图大小: 45.6 K
尺寸: 500 x 200
浏览: 37 次
点击打开新窗口浏览全图大小: 47.97 K
尺寸: 500 x 244
浏览: 38 次
点击打开新窗口浏览全图

 

二、%5c暴库法

"%5c"暴库法,它是利用了IIS解码方式中的一个特性,%5C是”\“的URL解码,当我们只要在某网站的最后一个“/”改成“%5c”时就能暴出它的数据库来。虽然这种漏洞的存在已经很少了,但还是有必要了解一下的。
    在IE中,我们访问一个这样的网站http://www.st999.cn/blog/admin/view.asp?id=15,只要改成http://www.st999.cn/blog/admin%5cview.asp?id=15就能够暴库,这是为什么呢?
    在windows系统中,“\”“/”具有两种不同的特性,在IIS中,它也有它的特性,如下

http://www.st999.cn/blog/admin/view.asp?id=15  正常访问

http://www.st999.cn/blog/admin\view.asp?id=15  把"/"改成"\"时,它会自动转换成“/”

假设我的blog存在d:\wwwroot\blog,网址是http://www.st999.cn/blog,数据库的地址是database\st999.mdb,那么它的绝对路径是d:\wwwroot\blog\database\st999.mdb,IIS为了解决虚拟目录能够正常访问,优先查询每一个目录是否指向了物理路径(d:\wwwroot\blog),而当我们把它换成%5c访问的时候,IIS解析到了%5c那儿,以为就遇到了一个虚拟目录,便不再解析,那么它就解析到了d:\wwwroot\database\st999.mdb,而在wwwroot目录下是不存在database目录和st999.mdb这个数据库文件的,所以,便发生错误,这样就把数据库的路径暴出来了。


    因为这类的暴库现在比较少见,我也没找到相关的网站来试验,也就没有图片了。

暴库条件:

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条记录相关文章
脚本安全之第三章 IIS写权限漏洞 (浏览: 12575, 评论: 0)
脚本安全之第一章 google hacking (浏览: 11950, 评论: 0)
脚本安全之前言 (浏览: 9743, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):