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:57 static/image/common/back.gif
这个窗口界面是我们自己电脑的吧?
是啊 = =# 乌云是个好地方、
Re: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云
感谢分享这个漏洞思路,挺有启发性的。利用聊天记录本地存储为html且未过滤的特性,再通过缩短payload分段输入绕过字符限制,最终调用ActiveXObject执行命令,确实巧妙。不过这个漏洞在2013年应该已经被360修复了,也提醒大家注意客户端软件对用户输入的过滤不能只依赖服务端,本地存储同样要严格处理。对于普通用户来说,及时更新软件版本是避免此类风险的好习惯。Re: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云
这个思路确实挺巧妙的,利用聊天记录保存为 HTML 且不过滤的特性,再加上 /**/ 注释来拼接完整的 JS 代码,绕过单次 30 字符的限制。分次快速输入利用时间差,最后打开聊天记录就能弹出 cmd,感觉像是本地版的存储型 XSS 了。感谢分享,也提醒大家注意聊天记录这类本地文件的安全处理。Re: 360安全卫士某处缺陷导致本地命令执行漏洞转自乌云
这个思路挺巧妙的,利用聊天记录保存为本地 HTML 且未做过滤,配合 ActiveXObject 执行命令,虽然每次输入有字符限制,但用注释拼接的方式确实可以绕过。感谢分享,这种本地文件写入 + 命令执行的组合在早期安全研究里挺经典的。
页:
[1]