数据库暴库入侵攻击漏洞

对于一些网站,只需要把站点链接的最后一个“/”改为“%5c”,就能够暴露出网站的数据库地址。为什么会出现这样的奇怪情况呢?

在“conn.asp”文件中的几句数据库连接代码语句,看上去觉得并没什么问题,而且数据库的名字取得很怪,攻击者能猜到这样的数据库名几率几乎为零。但是将网页连接地址的“/”做一个小小的变换,改成“%5c”,由于 IE 浏览器的解码,将错误的网站路径传输给网站服务器,就可以通过返回的错误信息报出数据库的真实位置。

1,绝对路径、相对路径和虚拟目录

上面我们提到,由于浏览器对“相对路径”解码的错误,才导致数据库暴露出漏洞。那么什么是“相对路径”呢?

在网站服务中,“相对路径”就是指相对于网站 Web 根目录的路径。例如,服务器的 web 根目录为“D:\web\”,我们在根目录中建立了一个名为“asp”的目录,“asp”目录就是相对于“D:\web”的一级子目录。对应到网站链接上来看的话,“D:\web\”对应的就是“http://localhost”,而“asp”目录就是相对于“http://localhost”的一级目录。因此,在 web 服务中访问“asp”目录时,只需在浏览器中输入相对路径“http://localhost/asp”即可。

所谓的绝对路径,是指在服务器磁盘中的真实路径,这里“asp”目录的绝对路径就是“D:\web\asp\”,是一个二级目录。

在IIS中,还有一个特殊的目录路径--“虚拟目录”。每个 Web 服务可以从多个目录中发布,Web 服务器可拥有一个宿主目录和任意数量的其他发布目录,其他发布目录就被称为虚拟目录。以上面的 Web 服务为例,Web 服务的根目录为“d:\web\”,通过IIS虚拟目录功能,可以发布一个论坛服务,论坛程序可以位于任意的路径,如在“E:\bbs”。通过IIS的虚拟目录设置,仍能把“bbs”转化为在“Web”目录下,直接用“http://localhost/bbs”进行访问。

使用虚拟目录时,此目录指向的是一个绝对地址的物理路径。在IIS中,为了辨别当前访问的是否为虚拟目录,通常是查询每个目录是否指向一个物理路径,而进行查询判断时,是以链接的“\”符号做为标志的。也就是说,当IIS获取某个目录时,如果碰到“\”符号,则将“\”符号之后的路径作为物理的绝对路径,而忽略“\”符号之前的路径信息。

2,"server.mappath"方法

在“conn.asp”数据库连接文件中,基本上都会有这么一条语句:

Data Source=server.MapPth("xxxxx.mdb")

其中“server.mappath”方法的作用,就是把相对路径转换为物理上的绝对路径,只有经过转换,服务器才能正确地获得数据库的路径,进行数据读写。

由于当前 Web 根目录为“D:\web”,在 Web 根目录下有“asp” 文件夹,网页程序“test.asp”和数据库“xxxxx.mdb”,都放在“asp”文件夹中。数据库文件的绝对路径为“D:\web\asp\xxxxx.mdb”。

“server.mappath”方法获取数据库文件的路径时,读取的路径为“Web根目录+相对路径+指定的路径”。Web 根目录为“D:\web”,“conn.asp”数据库连接文件的相对路径是“\asp\”,指定的数据库文件路径是“xxxxx.mdb”,因此可获得真实的数据库绝对路径“D:\web\asp\xxxxx.mdb”。

3,%5c 暴库的原理--相对路径出错

通常情况下,数据库连接文件中的“server.mappath”方法,可以正常获得数据库的物理路径。但是,当浏览器中的链接地址被修改提交后,网页的相对路径就发生了变化,从而使得路径出错,报出数据库信息。

先来看看 IE 浏览器的一个特性:如果直接在浏览器中提交的链接地址中包含“\”,浏览器会自动把“\”转换为“/”,从而访问到正常的链接地址。例如,在上面的例子中,如果提交“http://localhost/asp\conn.asp”或者“http://localhost/asp\test.asp”,最终在 IE 浏览器中显示的都还是正常网页。

在浏览器链接中包含的“\”,会被自动转化为“/”,但是对“\”做一个小小的编码转换,就可避免 IE 浏览器的自动转化。如上面提交的链接,变化编码后变成了:“http://localhost/asp%5cconn.asp”或“http://localhost/asp%5ctest.asp”。

在浏览器中,提交“%5c”是不会被自动转换的,地址中的“%5c”会被原样提交。其实,“%5c”就是“\”的 16 进制代码,当 IIS 服务器收到用户提交的信息并做出解析时,又会将 “%5c” 还原成“\”。于是在 IIS 服务器中,用户提交的网址相对路径就变成了“asp\test.asp”或“asp\conn.asp”。问题便由此而产生了。

此时,“server.mappath”方法获得的数据库路径,变成了“D:\web”+“asp\xxxxx.mdb”。由于在 IIS 中,以“\”表示真实路径的目录关系,以“/”表示虚拟路径。在前面提到了“当IIS获取某个目录时,如果碰到“\”符号,则将“\”符号之后的路径作为物理的绝对路径,而忽略“\”符号之前的路径信息”,由此可知IIS会将“asp\xxxxx.mdb”当成一个绝对路径,忽略掉“\”符号之前的“asp”目录。因此,加上根目录的物理路径“D:\web”,此时得到的数据库真实路径变成为“D:\web\xxxxx.mdb”。

由于“D:\web\xxxxx.mdb”这个路径是不存在的,数据库连接当然会失败,于是 IIS 会报错,并返回出错的信息:

错误类型:

Microsoft JET Database Engine (0x80004005)

找不到文件 'D:\web\xxxxx.mdb'。

/asp\conn.asp,第4行

这便是 “%5c” 暴库方法的原理。利用该方法,攻击者可以让网站隐藏的数据库文件路径报出,无论建站者将数据库文件名修改得再怪异、路径藏得再深,在攻击者面前也形同虚设。

不过要说明的一点是,在报出的数据库信息中,显示的数据库路径是不完全正确的。例如,在上面的命令中,显示的数据库路径为“D:\web\xxxxx.mdb”,而真实的数据库路径为“D:\web\asp\xxxxx.mdb”。为什么会这样呢?在上面已知提到了,IIS将“\”之前的相对路径信息忽略了,因此在将报出的数据库地址变为真实的数据库地址时,需要加上“\”之前的相对目录。这里将被忽略的“\asp\”目录加入,即可得到真实的数据库地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容