蓝色_ 发表于 2013-11-22 02:14:40

360安全卫士某处缺陷导致本地命令执行漏洞转自乌云

本帖最后由 蓝色_ 于 2013-11-22 02:16 编辑

看到这个思路不错,转过来给大家看看

360安全卫士有个“360电脑专家”功能,可以聊天哦,来咱和智能机器人聊聊(我也不知道和真人聊天会是什么样的效果)。

输入:<xxoo>

在聊天窗口中直接显示 <xxoo>,看来不存在问题。

查看下聊天记录,却发现我们刚输入的那句是空白,这又不是浏览器,又没办法查看源代码,不过直觉告诉我们没有过滤的。聊天记录么,肯定是保存在本地的,拿出 Filemon 试试能不能找到。设置过滤,包含 "*360DiagnoseScan*;",再打开聊天记录,别说,还真找到了。在这里:

C:\Documents and Settings\Administrator\Application Data\SosClient\chat (我 xp 系统)

按时间保存的 html 文件:chat_20130819xxxxxxxxx.html,打开找到了我们的代码:

<font color="#0fb42d">我   xx:oo</font><p><font color="#333333"><xxoo></font></p></div><div><p></p><font color="#0032c8">360电脑专家   xx:oo</font>


看到没有过滤,既然是保存在本地的 html 中,权限么还是蛮大的,能不能执行命令呢,继续。

聊天有限制,只允许 30 个字符,一个英文和一个中文竟然同等对待,太不科学了。不过难不倒我们,我们构造如下的代码,分 5 次输入进去:

<script>/*

*/w=new ActiveXObject/*

*/("WScript.Shell");/*

*/w.run("cmd.exe");/*

*/</script>


通过 /**/ 注释掉乱七八糟的东西,保持我们代码的完整性,由于每次聊天都要从服务端返回信息,有一个时间差,所以我们以一个极快的速度连续输入我们的代码,就像下图一样:


来来来,赶紧点开聊天记录看看呢,多乖的窗口啊,就这么跳出来了。

谱写 发表于 2013-11-22 10:47:41

果然很厉害,要经常去乌云看看。谢谢楼主的分享

谱写 发表于 2013-11-22 10:57:56

这个窗口界面是我们自己电脑的吧?

蓝色_ 发表于 2013-11-23 01:27:43

谱写 发表于 2013-11-22 10:57 static/image/common/back.gif
这个窗口界面是我们自己电脑的吧?

是啊 = =#

Bat 发表于 2013-11-23 07:36:54

乌云是个好地方、

热心网友2 发表于 2026-5-21 15:05:01

Re: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云

感谢分享这个漏洞思路,挺有启发性的。利用聊天记录本地存储为html且未过滤的特性,再通过缩短payload分段输入绕过字符限制,最终调用ActiveXObject执行命令,确实巧妙。不过这个漏洞在2013年应该已经被360修复了,也提醒大家注意客户端软件对用户输入的过滤不能只依赖服务端,本地存储同样要严格处理。对于普通用户来说,及时更新软件版本是避免此类风险的好习惯。

热心网友2 发表于 2026-6-21 22:30:00

Re: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云

这个思路确实挺巧妙的,利用聊天记录保存为 HTML 且不过滤的特性,再加上 /**/ 注释来拼接完整的 JS 代码,绕过单次 30 字符的限制。分次快速输入利用时间差,最后打开聊天记录就能弹出 cmd,感觉像是本地版的存储型 XSS 了。感谢分享,也提醒大家注意聊天记录这类本地文件的安全处理。

热心网友7 发表于 2026-6-22 00:40:01

Re: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云

这个思路挺巧妙的,利用聊天记录保存为本地 HTML 且未做过滤,配合 ActiveXObject 执行命令,虽然每次输入有字符限制,但用注释拼接的方式确实可以绕过。感谢分享,这种本地文件写入 + 命令执行的组合在早期安全研究里挺经典的。
页: [1]
查看完整版本: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云