zhirumuma 2007-7-21 04:01
个人总结之-脚本入侵技术系列(7)
第7课 爆库原理深入分析
一.概念:
1.什么叫做数据库:
通俗来讲,就是存贮网站一切信息的数据文件,例如管理员资料,用户资料,发表帖子数据等,
然后通过网站调用的方式体现数据库,例如我们可以注册,然后我们注册的信息就被写入数据库;我们可以发表帖子,我们帖子的内容就被保存在数据库中,当我们浏览帖子的时候又被显示等等
2.数据库的重要性:
数据库是网站最重要的资料文件,包含着网站的一切信息..
3.数据库的类型:
数据库的种类有 Access,MSSQL,MYSQL
一般的asp站点都是Access数据库,后缀是mdb,例如动网默认数据库是DVBBS7.mdb
ACC数据库一般配合asp架设
MSSQL和MYSQL一般配合PHP,JSP,ASPX架设网站....MSSQL数据库使用的操作系统一般是windows,MYSQL数据库使用的操作系统一般是LIUNX/UNIX
其中,MSSQL数据库最高用户是sa,MYSQL数据库最高用户是root
4.数据库连接文件conn.asp
包含数据库路径,提供asp程序调用....
==================================================================
二.暴库的概念:
通俗来讲,就是暴出数据库的路径,然后下载.一般是针对Access数据库的....
相对路径和绝对路径的概念
什么是相对路径:网址目录只表示从根目录起的相对位置
[url=http://www.***.com/admin/data/dvbbs.mdb]http://www.***.com/admin/data/dvbbs.mdb[/url]
什么是绝对路径:在磁盘上的完整路径,例如: C:\wwwroot\web\admin\data\dvbbs.mdb
%5c暴库大法:
首先知道%5c是十六进制的 " \ " 另外例如 # 的十六进制是 %23
暴库原理:
设置过iis的人都会知道,每一个网站,都必须指定它在硬盘上的物理目录,比如上例中,网站根目录所在的物理目录为:"C:\wwwroot\web",这样,数据库在硬盘上的物理路径是:C:\wwwroot\web\admin\data\dvbbs.mdb
当我们提交[url=http://www.***.com/admin%5cview.asp?id=3]http://www.***.com/admin%5cview.asp?id=3[/url]时,view.asp调用conn.asp后,得到的网页相对路径是这样的:/admin\ 再加上"data/dvbbs.mdb",就得到"/admin\data/dvbbs.mdb。在iis中,"/"和"\"代表着不同的意义,遇到了"\"时,认为它已到了根目录所在的物理路径,不再往上解析,于是网站的完整相对路径变成了:"data\dvbbs.mdb",再加上根目录的物理路径,得到的真实路径变成:"C:\wwwroot\web\data\dvbbs.mdb
",而这个路径是不存在的,数据库连接当然会失败,于是IIS会报错:
Microsoft JET Database Engine 错误 '80004005'
'C:\wwwroot\web\data\dvbbs.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
/admin/conn.asp,行12
这样一来,我们就可以知道真实的数据库路径就是 admin/data/dvbbs.mdb
********************************************************************************
例如: admin\data/dvbbs.mdb
解析方向 ←
IIS解析是从右到左,view.asp调用conn.asp后,得到的网页相对路径是这样的:/admin\(因为加了%5c)
那么上面的 admin/data/dvbbs.mdb就变成 admin\data/dvbbs.mdb
IIS遇到 \ 就不在解析 admin 就是只解析到 data\dvbbs.mdb
这样再加上C:\wwwroot\web\,路径就变成C:\wwwroot\web\data\dvbbs.mdb
但是这个路径是不存在,所以IIS报错
防范暴库:在数据库连接文件conn.asp加入容错语句:
On Error Resume Next