User Tools

Site Tools


argument_injection

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
argument_injection [2025/04/22 16:43] ppaleargument_injection [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 22: Line 22:
 {{argumentinjectionv2:slika2.png}} {{argumentinjectionv2:slika2.png}}
  
-Ovime se efektivno ime učitane datoteke koristi kao dio naredbe, te se može iskoristiti za command injection. Ovaj command injection ima ograničenje. Može se samo promijeniti izvršavanje naredbe u kojoj je injekcijanaredba pozivanja GCC prevoditelja. Ne može se ubaciti druga arbitrarna bash naredba korištenjem uobičajenih bash operatora kao što su  ‘;’, ‘&’,  ‘|’, ..  +Ovaj command injection ima ograničenje. Ne može se, umjesto pozivanja GCC prevoditelja,  ubaciti neka arbitrarna bash naredba korištenjem uobičajenih bash operatora kao što su ‘;’, ‘&’, ‘|’ nego će se uvijek pozivati GCC prevoditeljDakle, napadač može samo pokušati na lukav način u ime datoteke ugraditi naredbu koju želi da se izvrši (command injection)
-Kako bi se uspješno poslala datoteka s injektiranom naredbom, ime datoteke mora uspješno proći kroz filter koju funkcija „allowed_file“ implementira. Kako se provjerava samo završava li ime datoteke s ".c", ime naše datoteke treba nakon injektirane naredbe završavati s „.c“. +Kako bi se uspješno poslalo ime datoteke koje sadrži injektiranu naredbu, ime datoteke mora uspješno proći kroz filter koju implementira funkcija „allowed_file“. Kako se provjerava samo završava li ime datoteke s .c, ime naše datoteke treba nakon injektirane naredbe završavati s „.c“. Da bi se command injection u naredbi pozivanja GCC-a efektivno iskoristio, trebaju se istražiti funkcionalnosti i zastavice GCC-a, kako bi se pronašao način za iskorištavanje pronađene ranjivosti, tj. da se „nagovori“ GCC da izvrši naredbu koju napadač želi. GCC ima funkcionalnost pozivanja subkomandi unutar wrapper programa, korištenjem -wrapper zastavice. Ova funkcionalnost se može iskoristiti kako bi se pokrenuo bash process i dala mu se naredba koju napadač želi izvršiti.
-Da bi se command injection u naredbi pozivanja GCC-a efektivno iskoristio, trebaju se istražiti funkcionalnosti i zastavice GCC-a, kako bi se pronašao način za iskorištavanje pronađene ranjivosti. GCC ima funkcionalnost pozivanja subkomandi unutar wrapper programa, korištenjem -wrapper zastavice. Ova funkcionalnost se može iskoristiti kako bi se pokrenuo bash process i dala mu se naredba koju napadač želi izvršiti.+
  
 Potrebno je i analizirati kôd kako bi se pronašlo može li napadač nekako dobiti rezultat pokretanja injektiranje naredbe preko sučelja aplikacije. Ako ne može, onda treba provjeriti može li se izvući preko weba ili može li se pokrenuti reverse shell, kako bi se ispravnoi oblikovala injektirana naredba. Analizom izvornog kôda prikazanom na slici 2. , može se uočiti da će se rezultat izvršavanja subprocessa ispisati kao paragraf na vraćenoj stranici. Potrebno je i analizirati kôd kako bi se pronašlo može li napadač nekako dobiti rezultat pokretanja injektiranje naredbe preko sučelja aplikacije. Ako ne može, onda treba provjeriti može li se izvući preko weba ili može li se pokrenuti reverse shell, kako bi se ispravnoi oblikovala injektirana naredba. Analizom izvornog kôda prikazanom na slici 2. , može se uočiti da će se rezultat izvršavanja subprocessa ispisati kao paragraf na vraćenoj stranici.
Line 54: Line 53:
 </code> </code>
  
-bashu, može se vidjeti koji su znakovi definirani kao razdjeljivači. Oni su uobičajeno space, tab i newline. Da bi zamijenili ulogu razmaka u naredbi „cat flag.txt“, a održali namjenu razmaka, možemo direktno dohvatiti vrijednost definirane IFS varijable u kontekstu bash procesa. Da bi se to postiglo, razmak u naredbi „cat flag.txt“ se treba zamijeniti dohvaćanjem vrijednosti te varijable – „${IFS}“ kako bi imali naredbu ekvivalentnog značenja, ali drukčije zapisanu – „cat ${IFS}flag.txt“. Koristeći ovaj pristup, potpuna naredba za dohvaćanje flaga je:+bashu, može se vidjeti koji su znakovi definirani kao razdjeljivači. Oni su uobičajeno space, tab i newline. Da bi  u naredbi „cat flag.txt“ imali razmak, ali da ga filter ne vidi, možemo izravno dohvatiti vrijednost definirane IFS varijable u kontekstu (trenutku izvođenja) bash procesa. Da bi se to postiglo, razmak u naredbi „cat flag.txt“ se treba zamijeniti dohvaćanjem vrijednosti te varijable – „${IFS}“ kako bi imali naredbu ekvivalentnog značenja, ali drukčije zapisanu – „cat${IFS}flag.txt“. Koristeći ovaj pristup, potpuna naredba za dohvaćanje flaga je:
  
 <code> <code>
argument_injection.1745340227.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki