Vyuzit buffer overflow k nabourani POP3 serveru a spusteni vlastniho kodu.
Nase reseni vyuziva chybu nalezenou v prikazu STATE. Podle dokumentace RFC tento prikaz nema mit zadne parametry a jako odpoved ma vracet stavovy kod a dve cisla (predavani jinych informaci touto cestou je dokumentem RFC vyslovne nedoporuceno). Oproti tomu studovany server prijima argument a jeho cast vypisuje jako cvrtou polozku navratovych dat (jako treti polozka vystupuje pocet spojeni serverem obslouzenych). Pocet obslouzenych spojeni koreluje s velikosti dat, ktere jsou preneseny z parammetru prikazu STAT do jeho vystupu. Zaroven je v obsluze tohoto prikazu (zpracovani jeho parametru) chyba buffer-overflow, ktera umoznuje proves libovolny kod.
Jak jsem na tuto chybu prisli se dozvite v prezentaci, jak lze tuto chybu zneuzit se lze dozvedet ze zdrojoveho kodu exploitu a priklad "zneuziti" nastinuje zdrojovy kod shell-codu.
K reseni byly pouzity tyto nastroje: debuger OllyDbg, asm prekladac NASM, cpp prekladac Borland C++ 5.5.1, editor EditPlus
Pouzite materialy: RFC 1939 (Post Office Protocol - Version 3), MSDN Library, materialy k prednaskam X36API
Pro blizsi vysvetleni doporucujeme prostudovat zdrojove kody a promitanou prezentaci.