- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL入侵爆库原理与基本方法
SQL注入流行非常久了,我们找漏洞注入目的无非是想得到数据库内的东西,比如用户名密码等。(当然mssql数据库还能借此获得权限)。如果我们不用注入就能得到整个数据库,不是更好吗?于是暴库成了一个比注入更简单的的入侵手段。
有关暴库的方法,高手们常在入侵文章中提高,但多是一笔带过,有些就某一个方法谈的,也多是就方法进行探讨。最近有一篇《再谈%5c暴库的利用》文章,算是对暴库进行了一些总结,因而在网是流传非常广。但仍没有谈及原理,而且结论也只是就于经验,似是而非,于是决定来谈谈暴库的原理和规律。
一,关于%5c暴库大法:
这种方法被认为是暴库绝招,非常是流行了一阵(随着知道的人多了,防备也加强了,没以前那么有效了)。这种方法,简单点说就是,打开网页时,把网址址中的/换成%5c,然后提交,就能暴出数据库的路径。
实际上,并不是所有网址都有效,需要asp?id=这样的网页地址(表示有调用数据库的行为),如果你确认这个网页有调用数据库的,后面不是这样的也能,比如chklogin.asp等也能。(当然,也更有其他条件,后面再谈。)
先举个例子,
_blank_blank6/yddown%5cview.asp?id=3
bitsCN_com
把第二个/换成%5c
_blank_blank6/yddown%5cview.asp?id=3
提交后会得到如下结果:(图1)
Microsoft JET Database Engine 错误 ?
’D:\111\admin\rds_dbd32rfd213fg.mdb’不是个有效的路径。 确定路径名称拼写是否正确,及是否连接到文件存放的服务器。?
/yddown/conn.asp,行12?
(说明:这是黑防实验室的一个网站,暴库是他们故意开放的,因为他的关口不是注入,而是进入后台后怎么获得shell)。
目前非常多人都知道这个方法了,我就不多举例了。但清晰暴库原理的人估计是不多的。有人成功,有人不成功,《再谈%5c暴库的利用》一文总结说,须变换第二个/ 为%5c才行。非常有实用性,但这个结论只是一种经验,其实并不正确。让我们先看看他的原理
%5c暴库法,他不是网页本身的漏洞,而是利用了IIS解码方式中的一个特性,如果IIS安全设置不周全,而网页设计者未考虑IIS错误,就会被人利用。
为何要用%5c?他实际上是\的十六进制代码,也就是\的另一种表示法。在计算机中,他们是个东东。(图2)(十六进制转换图)
中国网管论坛
但提交\和%5c却会产生不同的结果,在ie中,我们把下面第一个地址中的/换成\提交:
_blank6/yddown/view.asp?id=3
_blank6 /yddown\view.asp?id=3
二者的访问结果是相同的。ie会自动把\转变成/,从而访问到同一地址。
不过,当我们把/换成十六进制写法%5c时,ie不会对此进行转换。地址中的%5c被原样提交了。这是抓包结果:(图3)
GET /yddown%5cview.asp?id=3 HTTP/1.1
当IIS收到后解析时,又会将%5c还原成\。这样,iis 中网址的相对路径就变成/yddown\view.asp。这一点非常重要。问题正是从这里开始的。
在ASP网页中,凡调用数据库时,都会用到一个连接数据库的网页conn.asp,他会创建一个数据库连接对象,定义要调用的数据库路径
一个典型的conn.asp如下:
%
dim conn
dim dbpath
set conn=server.createobject(adodb.connection)
DBPath = Server.MapPath(admin/rds_dbd32rfd213fg.mdb)
www.bitsCN.com
conn.Open driver={Microsoft Access Driver (*.mdb)};dbq= DBPath
%
大家注意第4句:DBPath = Server.MapPath(admin/rds_dbd32rfd213fg.mdb),Server.MapPath方法的作用是将网站中的相对路径转变成物理上的绝对路径。为何要这样?因为连接数据库时,须指明他的绝对路径。
(这里可能有人不明白,什么相对路径、绝对路径?IIS为了不让访问者知道真实的实际路径,并且确保网站不因变换地址而影响使用,他采用了一种相对路径来表示目录和文件之间的关系。也就是网址目录只表示从根目录起的相对位置。
比如:上面的网站中,网站:_blank6的根目录为:D:\111\雨点下载目录则在根目录(D:\111)内的yddown下,我们网站访问该站
文档评论(0)