Litteryi 发表于 2012-5-23 18:06:06

腾讯TM、QQ远程命令执行漏洞 点开QQ消息 执行本地文件、命令

当用户发送此类格式“网址”的时候:

www.baidu.com..\..\..\..\..\..\..\Windows\System32\cmd.exe

对方接收之后,点击鼠标左键打开该网址的时候,会被当成路径打开,从而可以恶意执行一些程序、系统命令,造成严重安全隐患。

漏洞原理很简单,不解释了……

条件如下:

1、不能 url 编码,只能明文,囧rz……

2、不能使用中、英文空格,路径会被“打断”。(可以试试自定义发包构造一下,或者尝试一下 Web 端发送。)

3、不能存在 % 号等特殊字符,原因和第一条一样。

4、不能跨分区,例如:..\..\c:\..\Windows\System32\cmd.exe,如果对方QQ没有安装在系统盘,那么效果会大大折扣。

5、网址必须是可信网址,才可以直接点开。

6、字符串长度有限制,大概255字节左右。

空格是个蛋疼问题,不能带参数执行程序了,也许可以试试特殊字符。

可以试试跟踪一下函数调用过程,也许可以直接写入 ShellCode。

严格的来讲,这个不是腾讯自身的问题,是腾讯调用的api的问题,没有明确指定是文件还是网址,Windows 则会优先调用文件,你可以试试用CMD执行:

dir www.baidu.com..\..\..\..\..\..\..\Windows\System32\cmd.exe

start www.baidu.com..\..\..\..\..\..\..\Windows\System32\cmd.exe

就明白了。

字符串:www.baidu.com,被系统当成了一个文件或者目录。

我猜是腾讯调用的API:ShellExecute。

ShellExecute 的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。

ShellExecute,可以打开文件、路径,或者调用与之关联的程序打开,例如:图片、音乐、网址等,问题出在这……

在没有明确指定是文件还是网址的情况下,Windows 会优先调用文件……

回顾历史,腾讯在处理网址中特殊字符的时候一直存在各种各样的问题,历史上也有过此类“远程命令执行”漏洞,甚至还有爆内存的,例如:腾讯 QQ、TM 远程读取内存数据漏洞、可导致远程溢出、拒绝服务攻击

k红颜 发表于 2012-5-23 23:42:55

沙发。支持

raven4310 发表于 2012-5-26 00:35:33

raven4310 发表于 2012-5-26 00:35:38

iait 发表于 2012-7-6 00:56:03

可以给一个完全的路径看下吗?新手,不太在行!

longfu312 发表于 2012-7-6 10:09:38

好!多谢分享

poppy 发表于 2012-7-6 15:08:39

小菜学习了······

禽兽 发表于 2012-9-10 17:55:25

635634436 发表于 2013-1-5 23:20:56

腾讯的@@

左兴雷 发表于 2014-11-15 09:08:34

页: [1] 2
查看完整版本: 腾讯TM、QQ远程命令执行漏洞 点开QQ消息 执行本地文件、命令