Trenutno stanje: PHP2Shell. Dve kritični ranljivosti PHP (CVSS 9,2) omogočata izvedbo škodljive kode brez prijave. Popravki od 21. 10. 2026.Kaj je zdaj treba storiti →

Datoteke PHP v imeniku za nalaganje: pravilna razlaga najdb

Datoteka PHP v imeniku za nalaganje je skoraj vedno alarmni znak, vendar ni vsaka škodljiva koda. Tako najdbo ovrednotite, ne da bi uničili sledi, in razjasnite, ali jo je kdo priklical.

Stanje 5 min branjaOdkrivanje in forenzika

Na kratko: Datoteka PHP v imeniku za nalaganje je resen opozorilni znak, saj naj bi tam ležale samo slike in dokumenti. Datoteke nikoli ne odpirajte v brskalniku, ampak jo preberite kot besedilo, preverite časovne žige in lastnika ter ime datoteke poiščite v dnevnikih dostopov. Neškodljive so večinoma samo prazne nadomestne datoteke, kot je index.php brez vsebine; vse ostalo obravnavajte kot možen vdor.

Zakaj PHP v imeniku za nalaganje nima kaj iskati

Imeniki za nalaganje so namenjeni vsebinam, ki jih naložijo obiskovalci ali uredniki: slike, PDF-ji, videi. Uporabnik spletnega strežnika tam sme pisati, sicer nalaganja ne delujejo. Prav to naredi te imenike privlačne za napadalce. Kdor prek ranljivosti lahko piše datoteke, jih odloži tja, kjer je pisanje dovoljeno.

Nove datoteke PHP v imenikih za nalaganje ali predpomnilnik po poročilih, ki so nam na voljo, sodijo med splošne opozorilne znake po vdoru. Za PHP2Shell ni potrjenih indikatorjev ogroženosti (Indicators of Compromise); najdba torej ne pove, prek katere ranljivosti je datoteka prišla. Kako se funkcije nalaganja gradijo varno, opisuje Varna izvedba nalaganja datotek v PHP.

Ali lahko taka datoteka naredi škodo, odloča konfiguracija spletnega strežnika. Če ta v imeniku za nalaganje izvaja datoteke PHP, vsaka tam odložena datoteka postane možno daljinsko upravljanje. Če je izvajanje tam zaklenjeno, ostane datoteka tujek, a sprva brez učinka. Mnoge namestitve te zapore nikoli niso uredile.

Kako datoteka PHP pride v imenik za nalaganje?

Za oceno pomaga poznati možne poti. Vsaka vodi do drugih nadaljnjih vprašanj.

Pot Tipično ozadje Nadaljnje vprašanje
Nezanesljiv obrazec za nalaganje preverjanje samo končnice ali vrste, ki jo javi brskalnik Kateri obrazci sprejemajo datoteke?
Ranljivost v vtičniku ali temi znana šibkost v zastareli razširitvi Katere razširitve so zastarele?
Ukradena dostopna gesla skrbniški račun, FTP ali račun za gostovanje Katere prijave so bile nedavno?
Izvedba kode prek ranljivosti npr. v interpreterju, kot je mogoče pri PHP2Shell Ali je bil PHP v tem obdobju ranljiv?
Legitimni vtičnik nadomestna datoteka, redko datoteke predpomnilnika Ali datoteka sodi v izvirni paket?

Več poti se lahko združi. Napadalec, ki prek ranljivosti izvaja kodo, datoteko morda odloži samo zato, da se pozneje udobneje vrne.

Sistematičen popis najdb

Preden ovrednotite posamezno datoteko, si ustvarite pregled. Ukazi samo berejo. Poti so primeri za WordPress; pri drugih sistemih prilagodite pot za nalaganje.

# Datoteke, podobne PHP, v imeniku za nalaganje z velikostjo, lastnikom, mtime in ctime
find /var/www/html/wp-content/uploads -type f \
  \( -iname "*.php*" -o -iname "*.phtml" -o -iname "*.phar" -o -iname ".htaccess" -o -iname ".user.ini" \) \
  -printf '%s Bytes  %u  m:%T+  c:%C+  %p\n'

# Vrsto datoteke določite po vsebini, ne po končnici (slike s kodo PHP izstopajo)
find /var/www/html/wp-content/uploads -type f -newermt "2026-10-17" -exec file {} + | grep -viE "image|pdf|video|audio"

Drugi sistemi uporabljajo druge imenike za pisanje, na primer fileadmin pri TYPO3, images pri Joomli ali imenik za medije pod public pri Shopware 6. Zraven pridejo imeniki predpomnilnika in začasni imeniki aplikacije. Pri namestitvah Multisite in več spletnih straneh na enem strežniku je ustrezno veliko imenikov za nalaganje; vsak sodi v iskanje.

Sumljive so tudi datoteke .htaccess in .user.ini v imeniku za nalaganje. Z njimi je mogoče izvajanje PHP v tem imeniku znova vklopiti ali spremeniti konfiguracijo.

Datoteka PHP v imeniku uploads: pravilna razlaga najdbe

Vsak zadetek ni enako resen. Naslednja razvrstitev pomaga pri prvi oceni. Natančne preiskave ne nadomesti.

Ugotovitev Prva razvrstitev
index.php z ničelnimi bajti ali samo komentarjem večinoma nadomestna datoteka proti izpisu imenika, preverite z vtičnikom
Datoteka PHP z vsebino v mesečnem imeniku velik sum
Dvojna končnica, kot je bild.jpg.php ali .php.png velik sum, tipično prikrivanje
Slika, ki po file vsebuje kodo PHP velik sum, lahko se izvede prek vključitve
.htaccess ali .user.ini v imeniku za nalaganje sum, preverite konfiguracijo
Datoteka pripada uporabniku spletnega strežnika, ctime po 17. 10. ustreza vdoru prek spletne strani

Sumljive datoteke berite samo kot besedilo, na primer s head -c 2000 datoteka.php ali less. Opazne so zelo dolge vrstice, kodirani nizi in imena funkcij, kot sta eval ali base64_decode. Kako prepoznate zakrito kodo, kaže Prepoznavanje zakrite kode PHP.

Ali je bila datoteka priklicana? Pogled v dnevnik

Najpomembnejše vprašanje po najdbi je: ali je kdo datoteko uporabil? Odgovor je v dnevnikih dostopov spletnega strežnika. Poiščite ime datoteke, tudi v arhiviranih dnevnikih.

# Priklici sumljive datoteke v aktualnih in zapakiranih dnevnikih (ime kot primer)
grep -h "uploads/2026/10/thumb.php" /var/log/nginx/access.log* 2>/dev/null
zgrep -h "uploads/2026/10/thumb.php" /var/log/nginx/access.log*.gz 2>/dev/null

# Samo uspešni priklici z naslovom IP in časom
grep -h "uploads/2026/10/thumb.php" /var/log/nginx/access.log* | awk '$9 == 200 {print $1, $4, $6, $7}'

Veliko uspešnih zahtev POST z nekaj naslovov kaže na aktivno uporabo kot webshell. Brez zadetkov ni samodejno razlog za razbremenitev, saj so dnevniki lahko rotirani, izbrisani ali nepopolni. Če spletna stran teče za CDN ali posrednikom, so nadaljnji zapisi tam; pri skupnem gostovanju ponudnik gostovanja dnevnike dostopov večinoma da na voljo v območju za stranke. Bodite pozorni tudi na zahteve po drugih novih datotekah z istih naslovov, saj pogosto vodijo do nadaljnjih sestavnih delov. Dnevnike od 20. oktobra obdržite. Kako dnevnike temeljito ovrednotite, piše v vodniku Vrednotenje dnevnikov spletnega strežnika po napadu.

Ukrepajte takoj

Če dnevnik kaže uspešne priklice neznane datoteke PHP, izhajajte iz vdora. Zavarujte datoteko in dnevnike, omejite dostop do strežnika in preverite, ali bi bili lahko prizadeti osebni podatki.

Po oceni: pravilen vrstni red

  1. Zavarujte: Datoteko kopirajte s kontrolno vsoto in časovnimi žigi, zavarujte dnevnike.
  2. Razjasnite izvor: Preverite obrazce za nalaganje, vtičnike in obdobje pred najdbo.
  3. Poiščite druge sestavne dele: dodatne datoteke, cronjobe, nove skrbniške račune.
  4. Zaklenite izvajanje: Na ravni spletnega strežnika prepovejte PHP v imeniku za nalaganje, kot opisuje prispevek Prepoved izvajanja PHP v imenikih za nalaganje.
  5. Očistite in zamenjajte dostope: šele nato datoteko odstranite in obnovite vsa gesla.

Kako PHP SOS pomaga konkretno?

  • Ocena najdbe: Datoteko preverimo, ne da bi jo izvedli, in jo razvrstimo.
  • Razjasnitev uporabe: Ovrednotimo dnevnike in rekonstruiramo, kdo je datoteko kdaj priklical.
  • Popolno čiščenje: Z odstranjevanjem škodljive programske opreme poiščemo vse sestavne dele, zapremo vzrok in zamenjamo dostope.
  • Preprečitev ponovitve: Izvajanje PHP v imenikih za pisanje zaklenemo in nadzorujemo nove datoteke.

Pogosta vprašanja

Ali je vsaka datoteka PHP v imeniku za nalaganje nevarna?

Ne vsaka. Nekateri vtičniki odložijo prazno datoteko index.php, da vsebina imenika ni izpisana. Vse ostalo, zlasti datoteke z vsebino, nenavadnim imenom ali dvojno končnico, obravnavajte kot primer suma.

Ali smem sumljivo datoteko odpreti v brskalniku?

Ne. Priklic prek spletne strani izvede kodo. Datoteko preberite samo kot besedilo na strežniku ali v kopiji, na primer z less ali head.

Kako ugotovim, ali je bila datoteka uporabljena?

Ime datoteke poiščite v dnevnikih dostopov spletnega strežnika. Zahteve s stanjem 200 in metodo POST kažejo, da je bila datoteka priklicana. Pripadajoči naslovi IP in časi pomagajo pri nadaljnji preiskavi.

Ali zadošča datoteko izbrisati in PHP v imeniku za nalaganje zakleniti?

Oboje je potrebno, a ne zadošča. Dodatno razjasnite, kako je datoteka prišla tja, poiščite druge sestavne dele in zamenjajte dostopna gesla. Sicer se napadalec vrne po isti poti.

Viri

Takojšnji stik

Vsaka ura šteje. Pišite nam zdaj.

Na kratko opišite sistem, različico PHP in opažanje. Odzovemo se, razjasnimo stanje in delamo na daljavo, dokler incident ni zaključen in dokumentiran.

Takojšnja pomoč