User Tools

Site Tools


ret2win

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ret2win [2023/11/15 16:49] – created kresimirret2win [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://platforma.hacknite.hr/challenges#Tajne%20vanilije-95]]
 +
 +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, što čini instrukcija na adresi 0x401345 (postavlja u edi registar adresu stringa za flag) Kako bi se ispravno izvršio, potrebno ga je pozvati s ispravnim argumentima, što čini instrukcija na adresi 0x401345 (postavlja u edi registar adresu stringa za flag)
-Dakle, ispis flag biti će izvršen ukoliko procesor krene izvođenje instrukcija od adrese 0x401345, što je onda I cilj postaviti kao povratnu adresu na stogu.+Dakle, ispis flag bit će izvršen ako procesor krene izvođenje instrukcija od adrese 0x401345, što je onda I cilj postaviti kao povratnu adresu na stogu.
  
 ==Padding:== ==Padding:==
Line 36: Line 61:
 Nakon breakpointa, pogledamo vrijednosti na stogu: Nakon breakpointa, pogledamo vrijednosti na stogu:
  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)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki