User Tools

Site Tools


command_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
command_injection [2026/06/12 15:33] – Još značajnih ispravki.. mbuniccommand_injection [2026/06/12 18:21] (current) – //host// višak mbunic
Line 1: Line 1:
 ====Command injection==== ====Command injection====
  
-**Command injection** je tip napada u kojem napadač izvršava naredbe na //host// operacijskom sustavu poslužitelja kroz neku ranjivu aplikaciju. Ranjivost nastaje kada se korisnički unos, bez odgovarajuće validacije, izravno ili neizravno koristi za sastavljanje naredbe koja se izvršava u ljusci operacijskog sustava (engl. //shell//, npr. Bash na Linuxu ili PowerShell na Windowsima). Primjeri korisničkih unosa u web-aplikaciji koji se mogu naknadno koristiti za sastavljanje naredbi za izvršavanje u ljusci operacijskog sustava mogu biti podaci iz obrazaca (formi), kolačića, URL parametara te ponekad čak i korisnička imena ili lozinke.+**Command injection** je tip napada u kojem napadač izvršava naredbe na operacijskom sustavu poslužitelja kroz neku ranjivu aplikaciju. Ranjivost nastaje kada se korisnički unos, bez odgovarajuće validacije, izravno ili neizravno koristi za sastavljanje naredbe koja se izvršava u ljusci operacijskog sustava (engl. //shell//, npr. Bash na Linuxu ili PowerShell na Windowsima). Primjeri korisničkih unosa u web-aplikaciji koji se mogu naknadno koristiti za sastavljanje naredbi za izvršavanje u ljusci operacijskog sustava mogu biti podaci iz obrazaca (formi), kolačića, URL parametara te ponekad čak i korisnička imena ili lozinke.
  
 Ovaj napad omogućuje napadaču izvršavanje naredbi s privilegijama korisnika pod kojim se izvršava web-aplikacija, no ako sustav nije ispravno konfiguriran, može doći do podizanja razine privilegija (engl. //privilege escalation//) do administratorskog korisnika, što napadaču daje potpunu kontrolu sustava. Ovaj napad omogućuje napadaču izvršavanje naredbi s privilegijama korisnika pod kojim se izvršava web-aplikacija, no ako sustav nije ispravno konfiguriran, može doći do podizanja razine privilegija (engl. //privilege escalation//) do administratorskog korisnika, što napadaču daje potpunu kontrolu sustava.
Line 75: Line 75:
  
  
-Command injection moguć je i u naredbama koje ne zahtjevaju unos korisnika ako napadač manipulira varijablama okruženja. Primjerice, napadač može promijeniti varijablu APPHOME koja u ovome primjeru određuje lokaciju gdje će  se aplikacija instalirati: +U oba opisana primjera, kada bi validacija korisničkog unosa bila adekvatno implementirana, primjerice dozvoljavanjem unosa samo brojeva za parametre te odbacivanjem unosa koji sadrže operator točka-zarez ili druge specijalne znakove (&, /, razmak, *, itd.), ranjivost ne bi postojala. Još bolji pristup je, umjesto zabranjivanja znakova (engl. //blacklist//), ograničiti unos tako da smije sadržavati samo znakove iz dozvoljenog skupa (engl. //whitelist//). Za parametre bi u tom slučaju jedini dozvoljeni znakovi za unos bile znamenke 0–9, a za prvi primjer samo znakovi koji se mogu pojaviti unutar imena datoteke.
- +
-<file> +
-char* home=getenv("APPHOME"); +
-char* cmd=(char*)malloc(strlen(home)+strlen(INITCMD)); +
-if (cmd) { +
-    strcpy(cmd,home); +
-    strcat(cmd,INITCMD); +
-    execl(cmd, NULL); +
-} +
-</file> +
- +
-Skripta dohvaća varijablu okruženja APPHOME (varijabla home) i lokaciju radni direktorij (varijabla cmd). Ako naredba postoji, varijabla okruženja se kopira na to mjesto. Ranjivost se krije u tome što nema nikakve provjere APPHOME varijable. To znači da, ako napadač promijeni varijablu APPHOME na neku putanju koja sadrži malicioznu verziju inicijalizacijske skripte (INITCMD), ona će se izvršiti zajedno s kodom koji bi inače trebao. +
- +
- +
-Također, napadač bi mogao izvesti ovu naredbu za promjenu lozinke: +
-<code> +
-system("cd /var/yp && make &> /dev/null"); +
-</code> +
- +
-Naredba mijenja radni direktorij u /var/yp i tamo poziva make. Ona je sama po sebi sigurna jer nema korisničkog unosa, što znači da ju ni napadač ne može izmijeniti. Međutim, budući da nije zadana apsolutna putanja do make filea, ako napadač promijeni $PATH varijablu okruženja, može na tu putanju unijeti malicioznu verziju make binarne datoteke. +
- +
- +
-Ukratko, command injection napad može se izvesti u naredbama koja nemaju dobro provedenu validaciju korisničkog unosa. Kako bi se izbjegao, aplikacija ne bi trebala ignorirati svaki unos koji djeluje neispravno, već bi trebala pogledati postoji li nešto u toj naredbi što bi moglo potencijalno biti command injection napad. +
  
 __**PRIMJER**__ **Zadatak s Hacknite platforme - Linux ROT13** __**PRIMJER**__ **Zadatak s Hacknite platforme - Linux ROT13**
command_injection.1781278403.txt.gz · Last modified: 2026/06/12 15:33 by mbunic

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki