[ DownBload @ 21.01.2005. 11:48 ] @
Evo jedan kul zadatak za exploitanje (naravno, na *nix-ima).

Code:

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


unsigned long val = 31337;
unsigned long *lp = &val;


int main(int argc, char **argv)
{
        unsigned long **lpp = &lp, *tmp;
        char buf[128];

        if (argc != 2)
             exit(1);

        strcpy(buf, argv[1]);       

        if (((unsigned long) lpp & 0xffff0000) != 0x08040000)
            exit(2);

        tmp = *lpp;         
        **lpp = (unsigned long) &buf;
        *lpp = tmp;

        exit(0);
}
[ Shatterhand @ 22.01.2005. 11:08 ] @
To je bio jedan od 0xbadc0ded ili vortex izazova, i to medju nizhim levelima sto mi nije jasno
jer nije toliko jednostavan za reshavanje.

[Ovu poruku je menjao Shatterhand dana 22.01.2005. u 12:14 GMT+1]
[ DownBload @ 22.01.2005. 11:13 ] @
U biti je jednostavno, samo treba malo razmisliti.
[ Vojislav Milunovic @ 22.01.2005. 12:15 ] @
Ček ček meni nešto ne ide u glavu, jer se ovim može prebrisati adresa exit() funkcije tamo negde iza data segmenta? (kao IAT na Winu)
Jedino mi to pada napamet, jer drugačije ne znam kako bi moglo da ide, davno se nisam baktao sa ovim stvarim ali problem je više nego interesantnan.
Takođe misli mda sam davno na ovom forumu postova link ka sličnim zadacima. Uspeo sam sve da ih rešim onomad (pre 3 godine) ali sad bi mogao samo da blenem u njih i da se pitam, a šta je ovaj čika hteo sa ovim =)
[ DownBload @ 22.01.2005. 13:14 ] @
Citat:
Vojislav Milunovic: Ček ček meni nešto ne ide u glavu, jer se ovim može prebrisati adresa exit() funkcije tamo negde iza data segmenta? (kao IAT na Winu)
Jedino mi to pada napamet, jer drugačije ne znam kako bi moglo da ide, davno se nisam baktao sa ovim stvarim ali problem je više nego interesantnan.
Takođe misli mda sam davno na ovom forumu postova link ka sličnim zadacima. Uspeo sam sve da ih rešim onomad (pre 3 godine) ali sad bi mogao samo da blenem u njih i da se pitam, a šta je ovaj čika hteo sa ovim =)


Vjerojatno mislis na prepisivanje GOT tablice ......ne bas (bar ja nisam mogao na svojoj masini).
Evo kako sam ja to exploitao -> http://student.foi.hr/~ljuranic/brainoverflow.txt
[ Sundance @ 22.01.2005. 13:30 ] @
Daj sljedeći put nešto i za win, NT Loader nešto baš i ne voli 0x0804xxxx adrese :/
[ Shatterhand @ 22.01.2005. 13:31 ] @
DB, nisi trebao dati reshenje bar do kraja dana, da se malo muchimo ;)
[ Vojislav Milunovic @ 22.01.2005. 13:36 ] @
[quote=DownBload]
Prvo mi je palo na pamet da **lpp (pointer na pointer) prepisem sa adresom
exit() funkcije u GOT sekciji, no od toga ocito nema nikakve koristi.
[/quote]

Ali pazi kako mislimo na isti nacin =)
[ Shatterhand @ 22.01.2005. 13:43 ] @
btw trebalo bi otvoriti temu Exploiting Challenge ili slicno koja bi ishla u top,
i izazovi bi se kretali bash na ovom nivou tj. ni teshko ni lako.
[ Sundance @ 22.01.2005. 13:45 ] @
I po mogućnosti da nisu samo za *nix :)
[ Vojislav Milunovic @ 22.01.2005. 15:21 ] @
Eto dorbrog razloga da predjes na C =))))
[ Shatterhand @ 22.01.2005. 15:25 ] @
Nece ti on spasti tako "nisko" :)
[ Shatterhand @ 22.01.2005. 18:36 ] @
I, da li ce se nash cenjeni moderator potruditi da uradi tako neshto ;p
Ideja je dobra, bar po mom misljenju.
[ Sundance @ 22.01.2005. 22:33 ] @
Citat:
Shatterhand: Nece ti on spasti tako "nisko" :)


To što više volim .NET ne znači da mrzim low-level stvari :)

Ali stvarno loše sadržaja ima (mislim exploitme-ja i sl.) za exploitanje na win općenito na netu...
[ EArthquake @ 30.08.2005. 18:43 ] @
hehe tek sad videh da se ovde u stvari radi od ptp vortex level3 chalinge-u :)
srecom sam zaboravio na ovu temu kad sam ga resavao , pokvarilo bi mi iznenadjenje :)

viseci u poslednje vreme na irc.pulltheplug.org gde je ovaj isti chalinge deo vortex wargame-a vidim da se mnogo ljudi zaglavi na njemu

jako interesantan zadatak kad se resi ,ali zadaje dosta muka svima

a da , jos nesto , cini mi se da je neko na ptp rekao , vlajda mercy na svom predavanju . da je moguce pored ovog p.0 prepisati jos i __atexit() i tako ga exploitati mada ni on nije bio siguran

[Ovu poruku je menjao EArthquake dana 30.08.2005. u 19:47 GMT+1]