User Tools

Site Tools


baze_i_datoteke

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
baze_i_datoteke [2025/04/27 17:06] – ppalebaze_i_datoteke [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 103: Line 103:
 /uploads/<sha 256 username hash>/baza.php /uploads/<sha 256 username hash>/baza.php
 </code> </code>
-jer je poznato da ova putanja postoji, jer je u njoj pohranjena slika profile.png +jer je poznato da ova putanja postoji, jer je u njoj pohranjena slika "profile.png".
  
-Sada je poznata tehnika kako stvoriti datoteku s proizvoljnim imenom i ekstenzijom, npr .php, unutar putanje na serveru s koje se datoteka može vidjeti i „dohvatiti“. Preostalo je pitanje kako iskoristiti tu datoteku da bi se nešto postiglo. +Sada je poznata tehnika kako stvoriti datoteku s proizvoljnim imenom i ekstenzijom, npr ".php", unutar putanje na serveru s koje se datoteka može vidjeti i dohvatiti. Preostalo je pitanje kako iskoristiti tu datoteku da bi se nešto postiglo. 
-Ako je ekstenzija datoteke „.php“, PHP kod unutar datoteke će biti procesuiran i obrađen pri postupku „dohvaćanja“ zatražene datoteke prije slanja odgovora na zahtjev. Znači da ako se stvori datoteka s „.php“ ekstenzijom i PHP kodom u sebi, koja može biti „dohvaćena“, pri postupku dohvaćanja prije nego što je vraćena, PHP kod će biti izvršen i rezultati izvršavanja će biti zapisani u datoteci.+Ako je ekstenzija datoteke „.php“, PHP kod unutar datoteke će biti obrađen i izveden pri postupku dohvaćanja zatražene datoteke prije slanja odgovora na zahtjev. Znači da, ako se stvori datoteka s „.php“ ekstenzijom i PHP kodom u sebi, koja može biti dohvaćena, pri postupku dohvaćanja prije nego što je vraćena, PHP kod će biti izvršen i rezultati izvršavanja će biti zapisani u datoteci.
  
 Ostalo je još samo pitanje kako zapisati PHP kod unutar SQLite datoteke s proizvoljnim imenom, na takav način da se PHP kod uspješno izvrši pri dohvaćanju. Unutar baze podataka s proizvoljnim imenom nad kojim imamo kontrolu se zapisuje korisničko ime i password stvorenog korisnika. Ovaj kod se može vidjeti unutar datoteke register.php (slika 9.) Ostalo je još samo pitanje kako zapisati PHP kod unutar SQLite datoteke s proizvoljnim imenom, na takav način da se PHP kod uspješno izvrši pri dohvaćanju. Unutar baze podataka s proizvoljnim imenom nad kojim imamo kontrolu se zapisuje korisničko ime i password stvorenog korisnika. Ovaj kod se može vidjeti unutar datoteke register.php (slika 9.)
  
-{{bazeidatoteke:slika9.png}}+{{  bazeidatoteke:slika9.png  }}
  
 Na username nema ograničenja osim da mora biti duže od 10 znakova i taj username će biti zapisan unutar baze podataka nad čijim imenom i lokacijom imamo kontrolu. (slika 9., slika 10. označeno crveno) Na username nema ograničenja osim da mora biti duže od 10 znakova i taj username će biti zapisan unutar baze podataka nad čijim imenom i lokacijom imamo kontrolu. (slika 9., slika 10. označeno crveno)
Line 116: Line 116:
  
  
-{{bazeidatoteke:slika10.png}}+{{  bazeidatoteke:slika10.png  }}
  
-Ovo znači da se može stvoriti baza podataka s „.php“ ekstenzijom i s PHP kodom unutar podataka, koji bi bio u plaintext formatu, pošto je username korisnika. Pri dohvaćanju ove baze podataka, što je također moguće odgovarajućim pozicioniranjem baze, PHP kod će se izvršavati, a mi ćemo moći definirati PHP kod koji će se izvršiti. Najjednostavniji kod koji se ovdje može postaviti je +Ovo znači da se može stvoriti baza podataka s „.php“ ekstenzijom i s PHP kodom unutar podataka, koji bi bio u plaintext formatu, pošto se username korisnika zapisuje u plaintextu. Pri dohvaćanju ove baze podataka, što je također moguće odgovarajućim pozicioniranjem baze, PHP kod će se izvršavati, a mi ćemo moći definirati PHP kod koji će se izvršiti. Najjednostavniji kod koji se ovdje može postaviti je: 
 ‚‚ ‚‚
 <?php system($_GET['cmd']); ?> <?php system($_GET['cmd']); ?>
Line 129: Line 129:
 ./uploads/<sha 256 hash usernamea prvog korisnika>/shell.php ./uploads/<sha 256 hash usernamea prvog korisnika>/shell.php
 ‚‚ ‚‚
-A korisničko ime koje bi se unijelo pri registraciji bi bilo+A korisničko ime koje bi se unijelo pri registraciji bi bilo:
 ‚‚ ‚‚
 <?php system($_GET['cmd']); ?> <?php system($_GET['cmd']); ?>
 ‚‚ ‚‚
  
-Nakon ove prijave, PHP shell bi se mogao koristiti na prethodno definiranoj putanji, a s „cmd“ GET parametrom se mogu definirati shell naredbe. Npr pokretanje „ls“ naredbe.+Nakon ove prijave, PHP shell bi se mogao koristiti na prethodno definiranoj putanji, a s „cmd“ GET parametrom se mogu definirati shell naredbe. Npr. pokretanje naredbe „ls“.
 ‚‚ ‚‚
 ./uploads/<sha 256 hash usernamea prvog korisnika>/shell.php?cmd=ls ./uploads/<sha 256 hash usernamea prvog korisnika>/shell.php?cmd=ls
Line 140: Line 140:
  
  
-Preporučen alat za ostvarivanje ovog postupka je burpsuite. Nakon što je prvi korisnik normalno stvoren i zabilježena je putanja njegove profilne slike kako bi se koristila u daljnjem postupku, može se upaliti burpsuite proxy preko kojega će se urediti zahtjev za registraciju. +Preporučen alat za ostvarivanje ovog postupka je burpsuite. Nakon što je prvi korisnik normalno stvoren i zabilježena je putanja njegove profilne slike kako bi se koristila u daljnjem postupku, može se pokrenuti burpsuite proxy preko kojega će se urediti zahtjev za registraciju. 
-Nakon unosa PHP koda u polje korisničkog imena na registraciji i nevažnog passworda, kao što je prikazano na slici 11.+Nakon unosa PHP koda u polje korisničkog imena na registraciji i proizvoljnog/nevažnog passworda, kao što je prikazano na slici 11.
  
-{{bazeidatoteke:slika11.png}}+{{  bazeidatoteke:slika11.png  }}
  
-Zahtjev se šalje pritiskom na gumb register, dok je istovremeno burp proxy upaljen, kako bi POST request presreo i uredio tako da mu se doda odgovarajući parametar „db“ kao što je prikazano na slici 12.+Zahtjev se šalje pritiskom na gumb "Register", dok je istovremeno burp proxy upaljen, kako bi on presreto POST request i preuredio ga tako da mu se doda odgovarajući parametar „db“ kao što je prikazano na slici 12.
  
-{{bazeidatoteke:slika12.png}}+{{  bazeidatoteke:slika12.png  }}
  
-Kada je db parametar odgovarajuće definiran kao što je prethodno opisano, zahtjev se može proslijediti. Ako je tehnika uspješno izvršena, trebao bi biti vraćen odgovor s porukom o uspješnoj registraciji kao što je prikazano na slici 13.+Kada je db parametar odgovarajuće definiran, na prethodno opisan način, zahtjev se može proslijediti. Ako je tehnika uspješno izvršena, trebao bi biti vraćen odgovor s porukom o uspješnoj registraciji kao što je prikazano na slici 13.
  
-{{bazeidatoteke:slika13.png}}+{{  bazeidatoteke:slika13.png  }}
  
-Nakon ovoga, web shellu se može jednostavno pristupiti korištenjem putanje koja je bile definirana u „db“ parametru POST requesta registracije.+Nakon ovoga, pristup web shellu je jednostavan, korištenjem putanje koja je bila definirana u „db“ parametru POST requesta registracije.
 U Dockerfileu se vidi lokacija flaga, tako da je za rješenje zadatka samo potrebno dohvatiti taj flag pristupom spomenutoj putanji s odgovarajućom shell naredbom zadanom u GET parametru: U Dockerfileu se vidi lokacija flaga, tako da je za rješenje zadatka samo potrebno dohvatiti taj flag pristupom spomenutoj putanji s odgovarajućom shell naredbom zadanom u GET parametru:
  
Line 171: Line 171:
  
  
-{{bazeidatoteke:slika14.png}}+{{  bazeidatoteke:slika14.png  }}
baze_i_datoteke.1745773614.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki