web迅雷下载任意文件漏洞分析过程

by 空虚浪子心

互联网上总是有很多奇奇怪怪的设计和需求,他们总是带来很有趣的安全问题。

上次的可执行任意命令漏洞,迅雷已经修补了,在知道被修补的同时,也顺带研究了一下补丁,发现他已经把opendirectory限制在了"my.xunlei.com"下。先不说这个是否安全,看一下其他插件,迅雷有很多插件,一个能写出“opendirectory”的同学,会不会写出点其他的东西呢?

我其实不会玩插件安全,顶多看下函数,拿COMRaider跑出来点不知道是啥意思的东西,别的就不懂了,所以没收获也很正常。开动歪脑经,发现xunlei的一个设置下载文件夹得功能不错,如果能让用户下载到远程共享,然后再写个脚本,不断的替换下载文件,也能达到远程执行木马的功能。

可惜即使设置成功了,xunlei还是不让下载,而且,经过新的漏洞修补,那个函数也只能在“my.xunlei.com”下调用。当然mini迅雷也有个不错的函数,可以用js调用,直接设置默认下载文件夹。

可惜这个设置必须以单个字母加":"开头。

sniffer web迅雷时,看到有个http://127.0.0.1:200的东西,原来这里是个迷你的小web服务器。嘿嘿。。不知道迅雷的web服务器有没有apacheiis安全性好。

这个web其实是个cache(本地缓存),为了减少my.xunlei.com的压力,不得不做了一个本地缓存。

研究这个web server的初衷,其实是因为这个web下的js要在“my.xunlei.com”域下执行,这可是好事的,我前面说了,opendirectory补丁后,其实是可以在这个域下调用的。有web,就有一大推安全问题等着你,溢出啦,目录浏览啦,文件写入啦。。。

其实我对web也不是很熟悉,就是先“../”一下,然后编码一下而已。

结果都不管用。

恼羞成怒下,键盘上出现的字符,都扔了上去。

哈哈!出来好东西了!

这张图,上面是file monitor监控文件读写,下面文本文档是我请求的url地址后半部分。看到不能“/../”取文件的原因了,他们把“./”转换成了“\”,当然也转义了其他一些危险字符。转义后:

http://127.0.0.1:200/../aaa.txt

变成了

http://127.0.0.1:200/.\aaa.txt

这当然不能跨目录了。

只可惜这个转义本身就存在问题,少了一个“.”,其实我看键盘上所有字符的转义,就是为了找一个能够被他“变没”的字符出来,以便加入到“/../”的行列中。现在看来,果然转义的恰到好处。

下面请求文件:

最后,使用远程地址居然也能访问,见图.

这就意味着,任何一个开了web迅雷的用户,你的c盘,对我来说,是免费共享的。什么什么cookie文件,某些ftp的用户密码文件,甚至你刚刚下载到“c:\ TDDOWNLOAD”下的A片,只要知道文件名,就可以免费归我。

http://localhost:200/…/Profiles/history6.dat

这个地址,是以前你下载的小电影历史记录,这个漏洞只能读,暂时不能剪切。

如果服务器上,也用web迅雷,这就等于是后门了。

其实最最之前的初衷,我是想找找my.xunlei.com下的跨站来的,因为这里的跨站最牛X,可以执行任意系统命令。

 

—-

感谢网友“cltf指正本文一处拼写错误。

 

 

 

发表评论?

5 条评论。

  1. 不错 顶下
    下载个web迅雷 试试

  2. 这个web其实是个catch,为了减少my.xunlei.com的压力,不得不做了一个本地缓存。

    cache??

  3. 恩。。。写错了
    是cache

  4. 这个漏洞是不是会自动运行程序,或只有安装了web的迅雷在下载的时候才会出现这个问题

发表评论