Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| file_upload [2025/12/01 11:40] – external edit 127.0.0.1 | file_upload [2026/06/17 17:06] (current) – mbunic |
|---|
| ==== File upload ==== | ==== File upload ==== |
| |
| **File upload ranjivosti** odnose se na napade koji se izvršavaju postavljanjem (//uploadom//) maliciozne datoteke na poslužitelj. Svaki korisnički unos treba biti pročišćen prije nego što dođe do poslužitelja. U slučaju kad se prima samo tekst, napadač može pokušati upisati neku malicioznu naredbu i tada se javljaju ranjivosti poput [[sql_injection|SQL injectiona]] ili [[ssti|SSTI-ja]]. Zadaća je sustava da prepozna pokušaj unosa naredbe i spriječi njezino izvođenje. | **File upload ranjivosti** odnose se na napade koji se izvršavaju postavljanjem (//uploadom//) malicioznih datoteka na poslužitelj. Svaki korisnički unos treba biti adekvatno validiran prije nego što se pohrani ili koristi na drugi način. U slučaju web aplikacija koje omogućuju prijenos datoteka na poslužitelj (fotografija, dokumenata, audiozapisa i slično), ako validacija nije adekvatno implementirana, napadač može iskoristiti ovu funkcionalnost za učitavanje nepredviđenih zlonamjernih datoteka. |
| | |
| | Jednostavan primjer je slučaj u aplikacijama koje nemaju popis dozvoljenih ekstenzija i validaciju sadržaja datoteke, već prihvaćaju datoteke svih formata. Tada je moguće jednostavno učitati datoteke poput .php, .py ili bilo koje druge datoteke koje se mogu izvršavati kao programski kôd. Uspješan prijenos takve datoteke nije uvijek dovoljan, već je potrebno i da poslužitelj bude konfiguriran tako da se taj kôd može i izvršiti. |
| | |
| | Složeniji primjeri su slučajevi gdje se stvarno vrši validacija sadržaja datoteke, npr. datoteka mora biti validna slika, a sustav je konfiguriran tako da izvršava kôd samo ako se datoteke nalaze u određenim direktorijima. U takvim slučajevima mogući su napadi korištenjem **polyglot** datoteka, koje mogu istovremeno biti i validna slika i validan programski kôd. Ako je u sustavu također prisutna i **path traversal** ranjivost pri pohrani učitane datoteke, koja omogućuje arbitraran odabir direktorija u koji će se datoteka pohraniti manipulirajući imenom datoteke (npr. "../../../var/www/html/profile_picture.jpg.php"), ove ranjivosti zajedno se mogu kombinirati kako bi se ostvarilo izvršavanje koda (engl. //remote code execution//, RCE). |
| |
| Kod web aplikacije koje dozvoljavaju prijenos datoteka na poslužitelj (fotografija, dokumenata i slično) napadač može iskoristiti prostor za unos datoteke da pošalje neku malicioznu datoteku na poslužitelj. Najjednostavniji je slučaj u aplikacijama koje nemaju popis dozvoljenih ekstenzija, već prihvaćaju datoteke svih formata. Tada je moguće jednostavno objaviti .php, .py ili bilo koju datoteku koja se može izvršiti kao programski kôd. Uspješan prijenos takve datoteke nije uvijek dovoljan, već je potrebno i da poslužitelj bude konfiguriran tako da zaista izvede taj kôd. | |
| \\ | |
| \\ | \\ |
| \\ | \\ |