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. Primjericenapadač 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 implementiranaprimjerice 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 postojalaJoš bolji pristup jeumjesto zabranjivanja znakova (engl. //blacklist//), ograničiti unos tako da smije sadržavati samo znakove iz dozvoljenog skupa (engl//whitelist//)Za parametre bi tom slučaju jedini dozvoljeni znakovi za unos bile znamenke 0–9a 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(cmdNULL); +
-+
-</file> +
- +
-Skripta dohvaća varijablu okruženja APPHOME (varijabla home) i lokaciju radni direktorij (varijabla cmd). Ako naredba postojivarijabla okruženja se kopira na to mjestoRanjivost 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đernapadač 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čda ju ni napadač ne može izmijenitiMeđ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 naredbama koja nemaju dobro provedenu validaciju korisničkog unosa. Kako bi se izbjegaoaplikacija 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