ret2win
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| ret2win [2023/11/15 16:49] – created kresimir | ret2win [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====Ret2Win==== | ||
| + | |||
| + | Ret2Win jest naziv za vrstu binarne eksploatacije kojom napadač preplavljuje povratnu adresu na neku funkciju unutar binarne datoteke. | ||
| + | |||
| + | |||
| ====Tajne vanilije==== | ====Tajne vanilije==== | ||
| + | |||
| + | ===Opis zadatka:=== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | S ispravnim parametrima sladoleda i finim kornetima, Antina hrabra avantura prodaje sladoleda solidno napreduje, ali Ante i dalje ima poteškoća u prodaji sladoleda jer konkurenti ipak nekako uspijevaju proizvoditi finije sladolede. | ||
| + | |||
| + | Ante je istraživao kako je to moguće, i u toj istrazi je naišao na sučelje programa koji čuva tajne za izradu najfinijih sladoleda. Navodno taj program sadrži recept za izradu odličnog sladoleda od vanilije, ali pristup tom receptu je zaštićen - program traži korisničko ime i lozinku. Unatoč svim naporima, Ante nije uspio dobiti pristup jer tvrdi da nije izvedivo pogoditi traženu lozinku. | ||
| + | |||
| + | Možeš li mu ti pomoći da dođe do recepta za izradu odličnog sladoleda od vanilije? | ||
| + | |||
| + | Ante je čak pripremio Python skriptu za spajanje na program (exploit.py) kojom je pokušao doći do tajnih podataka. Nije bio uspješan, ali možda ti njegova skripta može uštedjeti vrijeme pri izradi svoje skripte za ostvarivanje pristupa. | ||
| + | |||
| + | Spoji se na program uz pomoć naredbe telnet (ako koristiš Windows) ili naredbe netcat (ako koristiš Linux) ili možeš izravno koristiti pripremljenu skriptu (exploit.py): | ||
| + | |||
| + | telnet chal.platforma.hacknite.hr 11002 | ||
| + | |||
| + | netcat chal.platforma.hacknite.hr 11002 | ||
| ===Rješenje: | ===Rješenje: | ||
| Line 15: | Line 38: | ||
| Zatim disassemble main funkcije: | Zatim disassemble main funkcije: | ||
| disas main | disas main | ||
| + | |||
| + | {{tajnevanilijedisas.png}} | ||
| Unutar main.c datoteke, ispis flaga se događa na liniji: | Unutar main.c datoteke, ispis flaga se događa na liniji: | ||
| Line 21: | Line 46: | ||
| Iz tog razloga, potrebno je preplaviti povratnu adresu za vrijeme unosa lozinke kako bi se izvršio navedeni poziv puts na adresi 0x40134a. | Iz tog razloga, potrebno je preplaviti povratnu adresu za vrijeme unosa lozinke kako bi se izvršio navedeni poziv puts na adresi 0x40134a. | ||
| Kako bi se ispravno izvršio, potrebno ga je pozvati s ispravnim argumentima, | Kako bi se ispravno izvršio, potrebno ga je pozvati s ispravnim argumentima, | ||
| - | Dakle, ispis flag biti će izvršen | + | Dakle, ispis flag bit će izvršen |
| ==Padding: | ==Padding: | ||
| Line 36: | Line 61: | ||
| Nakon breakpointa, | Nakon breakpointa, | ||
| x/200xb $rsp | x/200xb $rsp | ||
| + | |||
| + | {{tajnevanilijeexamine.png}} | ||
| Vidimo da vrijednosti (0x41414141) kreću od vrha stoga na adresi 0x7fffffffdea0. | Vidimo da vrijednosti (0x41414141) kreću od vrha stoga na adresi 0x7fffffffdea0. | ||
| Kako bi saznali gdje je pohranjena povratna adresa upišemo naredbu: | Kako bi saznali gdje je pohranjena povratna adresa upišemo naredbu: | ||
| i f (tj. info frame) | i f (tj. info frame) | ||
| + | |||
| + | {{tajnevanilijeif.png}} | ||
| U vraćenom odgovoru vidljivo je "Rip at 0x7fffffffdf18" | U vraćenom odgovoru vidljivo je "Rip at 0x7fffffffdf18" | ||
ret2win.1700066951.txt.gz · Last modified: 2025/12/01 11:40 (external edit)