站内搜索
广告
安全基础知识 细说暴库的原理与方法
作者:    来源:    点击:    日期:2007-11-13 13:17:26   
 

  上面的结果很显然:channely已位于H:盘的根目录上,上面再没有目录。事实上,很可能网站在d:盘或e:盘,而通过IIS中设置channely虚拟子目录指向网站根目录以外的"H:\channely\",这里,我们可以更清楚的看到,微软iis为何没有到根目录,只要遇上"\"就认为已到物理绝对路径,不再往上解析的原因,就是为了处理这种网站虚拟目录与根目录不在一起的情况。它优先查询每个目录是否指向了物理路径,如果指向了,则把它换成绝对路径,而它上面的相对地址不再解析转换。

  从以上分析可知,我们只有在数据库相对地址和它的目录绝对地址之间使用"\"("%5c"),才能达到目的。上例中,如果在第二处使用,它只会影响到IIS寻找虚拟的channely目录地址,而conn.asp中解析出的数据库地H:\channely\blog、log_mdb\%29dlog_mdb%29.asp仍是对的,当然不会暴库。

  《再谈%5c暴库的利用》中还说了一种针对只有一级目录的解决方法:

  "其实一级目录我们也同样可以成功的,我们可以通过构造一个多级目录来达到暴库的目的。
  如下:
http://www.target.com/noexists/..%5clist.asp?id=1

  这样大家就会有新的惊喜了,呵呵。"

  真的吗?从理论上分析,这种方法是不会成功的。因为遇到"%5c"时,不再解析,所以中间构造的目录,不论是真是假,都是不起作用的,被舍弃了,相对路径还是到了根目录,路径不会出错。

  这个网站我们先用conn.asp方法暴出数据库(后面将讲的),说明服务器和网站设置是可以暴库的。

  得到如下结果

  http://www.om88.com/abc/..%5cArticle_Show.asp?ArticleID=481

  却暴不出库,仍得到正常页面(换成存在的路径结果也一样),但图片无法显示。这是因为相对路径变了,所以无法正确找到图片路径,但绝对路径解析时被"%5c"舍弃了,没有出错,当然暴不出库。

  二,conn.asp暴库大法

  这里,conn.asp只是表示数据库调用文件,因为多数都是这个名字(有些网站改名,我们也视同conn.asp)。其实,这种暴库法是最先出现的,以前很多牛人都对此进行过探讨。只是在"%5c"暴库大法出现后,倒较少有人提及。其实个人认为,"%5c"暴大法随着服务器设置安全性的加强,用武之地会越来越少。而conn.asp暴库大法发挥的余地更大,可以人为构造,臭要饭的当年著名的动网大挪移实现暴库,其实也属于此类。

  上面http://www.om88.com/

  一例中,用"%5c"暴不出数据库路径,因为没有二级目录,但用第二种却可以暴出。它是动力系统的。
我们再来看另外一个ASP系统一个盗帅的例子:_blank>http://www.51see.org/

  提交

  http://www.51see.org/db/user.asp

  得到如下结果

  "Microsoft JET Database Engine 错误 ’80004005’

  ’d:\Hosting\wwwroot\uilady_com\htdocs\db\db\downloadwoaini12345.asp’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

  /db/user.asp,行6 " 

  有人可能会说,这么简单就暴库,好爽!是不是所有网站都可以这样啊?当然不是,已作了防护的肯定不行,没作防护的,要暴库也是有条件的。

  如果说第一种暴库法是利用了绝对路径出错,那么,这种暴库法就是利用了相对路径出错。

  一般来说,只要conn.asp不在根目录的系统,而调用文件在根目录,就会出现这种问题。当然这种说法也是经验性的,准确的说就是,conn.asp与调用它的文件,如果相对位置改变了,就会报错,暴出数据库路径。这样说可能有人不明白,不要紧,接着看你就会明白的。

  我们从动力文章系统说起:

  动力文章系统的conn.asp位于系统的inc目录下,而很多调用它的文件在系统根目录下,比如User_ChkLogin.asp等,这样当conn.asp执行时,它是在系统根目录D:\wwwroot\zyx688\wwwroot\下执行的,因此,conn.asp文件中,调用数据库时,它考虑到执行时的目录路径,因而数据库的相对地址写成如下:
dim db

db="database/fp360609.asp"

  这样,当它在系统根目录下执行时,数据库的相对路径为根目录下的"database"目录内。但当我们直接请求它时,它工作的当前目录是在根目录下的INC目录内,这时,数据库的相对路径就变成了"inc/database/fp360609.asp",这样它当然出错。得到的绝对路径中多出了"inc。为了让大家看得更清楚,我们举一个可以用两种方法暴库的网站,比较一下看有何不同:

  提交:http://www.pofen.com/sc/down%5cshow.asp?id=437
  得到:
  "Microsoft JET Database Engine 错误 ’80004005’

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

  /sc/down/db/user.asp,行6 "

  再提交:http://www.pofen.com/sc/down/db/user.asp

  得到:
  "Microsoft JET Database Engine 错误 ’80004005’

  ’D:\Webdata\pofen.com\sc\down\db\db\download.mdb’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

  /sc/down/db/user.asp,行6 "

  两种方法得到的绝对路径,一个比实际路径少了,一个则多了,所以路径错误而报错暴出数据库。

  这两个系统都是因为conn.asp不在系统根目录下,而引起的。(其实这样的系统不止两个)。

  那是不是conn.asp放在根目录,与调用的文件在一个目录下就无事呢?如果在一起,当然没事,但牛人自有牛法子,可以通过构造方法来造成相对路径变化,一样能达到暴库的目的。比如,动网的大挪移手法,将conn.asp移位,从而暴库。当然,实际操作中,因为conn.asp移走后,网站无法工作,所以没有成功。但这种思路还是给很多人启发。如果有一种方法可以复制而不是移动,或者说,移动的不是conn.asp,而是调用conn.asp的其它文件比如chklogin之类的,理论上就可以成功。(当然,如果服务器和网页对暴库进行了安全处理,就是另一回事)。这种方法,当也就是一些牛人把网页存到本地改路径而搞出来的。今天刚看到一个暴动易数据库的最新方法,其原理也是构造错误而达到获得真实路径的目的。

  三,暴库的防范

首页 上一页 [1] [2] [3] [4]  下一页 尾页 
安全基础知识 细说暴库的原理与方法 评论