Aktuālā situācija: PHP2Shell. Divas kritiskas PHP ievainojamības (CVSS 9.2) ļauj izpildīt ļaunprātīgu kodu bez pieteikšanās. Ielāpi kopš 21.10.2026.Kas jādara tagad →

PHP faili augšupielāžu mapē: atradumu pareiza izpratne

PHP fails augšupielāžu mapē gandrīz vienmēr ir trauksmes signāls, bet ne katrs ir ļaunprātīgs kods. Kā novērtēt atradumu, neiznīcinot pēdas, un noskaidrot, vai kāds to ir izsaucis.

Aktuāls uz 5 min lasīšanas laiksAtklāšana un forensika

Īsi sakot: PHP fails augšupielāžu mapē ir nopietna brīdinājuma pazīme, jo tur jābūt tikai attēliem un dokumentiem. Failu nekad neatveriet pārlūkprogrammā, bet lasiet kā tekstu, pārbaudiet laika zīmogus un īpašnieku un meklējiet faila nosaukumu piekļuves žurnālos. Nekaitīgi parasti ir tikai tukši vietturi, piemēram, index.php bez satura; visu pārējo uzskatiet par iespējamu ielaušanos.

Kāpēc PHP augšupielāžu mapē nav ko meklēt

Augšupielāžu mapes paredzētas saturam, ko augšupielādē apmeklētāji vai redaktori: attēliem, PDF, video. Tīmekļa servera lietotājs tur drīkst rakstīt, citādi augšupielādes nedarbotos. Tieši tas šīs mapes dara pievilcīgas uzbrucējiem. Kas ar ievainojamību var rakstīt failus, tos novieto tur, kur rakstīšana ir atļauta.

Jauni PHP faili augšupielāžu vai kešatmiņas mapēs saskaņā ar mūsu rīcībā esošajiem ziņojumiem pieder pie vispārējām brīdinājuma pazīmēm pēc ielaušanās. PHP2Shell nav apstiprinātu Indicators of Compromise; atradums tāpēc neko nesaka par to, caur kuru ievainojamību fails nonāca. Kā augšupielādes funkcijas uzbūvēt droši, apraksta Failu augšupielāžu droša īstenošana PHP.

Vai šāds fails var nodarīt kaitējumu, izšķir tīmekļa servera konfigurācija. Ja tas augšupielāžu mapē PHP failus izpilda, katrs tur novietots fails kļūst par iespējamu tālvadību. Ja izpilde tur ir bloķēta, fails paliek svešķermenis, bet sākotnēji bez iedarbības. Daudzās instalācijās šī bloķēšana nekad nav iestatīta.

Kā PHP fails nonāk augšupielāžu mapē?

Novērtēšanā palīdz zināt iespējamos ceļus. Katrs rada citus turpmākos jautājumus.

Ceļš Tipisks fons Turpmākais jautājums
Nedroša augšupielādes veidlapa pārbaudīts tikai paplašinājums vai pārlūka paziņotais tips Kuras veidlapas pieņem failus?
Ievainojamība spraudnī vai motīvā zināma vājā vieta novecojušā paplašinājumā Kuri paplašinājumi ir novecojuši?
Nozagti piekļuves dati administratora, FTP vai hostinga konts Kādas pieteikšanās bija pēdējā laikā?
Koda izpilde caur ievainojamību piemēram, interpretatorā, kā iespējams PHP2Shell gadījumā Vai PHP šajā periodā bija ievainojams?
Likumīgs spraudnis vietturis, reti kešatmiņas faili Vai fails pieder oriģinālajai pakotnei?

Var sakrist vairāki ceļi. Uzbrucējs, kas ar ievainojamību izpilda kodu, failu varbūt tikai novieto, lai vēlāk ērtāk atgrieztos.

Atradumu vietu sistemātiska uzskaitīšana

Pirms vērtējat atsevišķu failu, gūstiet pārskatu. Komandas tikai lasa. Ceļi ir WordPress piemēri; citām sistēmām augšupielāžu ceļu pielāgojiet.

# PHP līdzīgi faili augšupielāžu mapē ar izmēru, īpašnieku, mtime un 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'

# Faila tipu noteikt pēc satura, nevis paplašinājuma (attēli ar PHP saturu uzkrīt)
find /var/www/html/wp-content/uploads -type f -newermt "2026-10-17" -exec file {} + | grep -viE "image|pdf|video|audio"

Citas sistēmas izmanto citas rakstīšanas mapes, piemēram, fileadmin TYPO3, images Joomla vai multivides mapi zem public Shopware 6. Klāt nāk lietojumprogrammas kešatmiņas un pagaidu direktoriji. Multisite instalācijās un vairākās vietnēs vienā serverī ir attiecīgi daudz augšupielāžu mapju; katra pieder meklēšanai.

Arī .htaccess un .user.ini faili augšupielāžu mapē ir aizdomīgi. Ar tiem var atkal ieslēgt PHP izpildi šajā mapē vai mainīt konfigurāciju.

PHP fails augšupielāžu mapē: atradumu pareiza izpratne

Ne katrs trāpījums ir vienlīdz nopietns. Šis iedalījums palīdz pirmajā novērtējumā. Tas neaizstāj rūpīgu izmeklēšanu.

Atradums Pirmais iedalījums
index.php ar nulle baitu vai tikai komentāru parasti vietturis pret direktorija uzskaitīšanu, salīdzināt ar spraudni
PHP fails ar saturu mēneša mapē augstas aizdomas
Dubults paplašinājums, piemēram, bild.jpg.php vai .php.png augstas aizdomas, tipiska maskēšanās
Attēls, kas saskaņā ar file satur PHP kodu augstas aizdomas, var tikt izpildīts ar iekļaušanu
.htaccess vai .user.ini augšupielāžu mapē aizdomas, pārbaudīt konfigurāciju
Fails pieder tīmekļa servera lietotājam, ctime pēc 17.10. atbilst ielaušanās caur vietni gadījumam

Aizdomīgus failus lasiet tikai kā tekstu, piemēram, ar head -c 2000 datei.php vai less. Uzkrītošas ir ļoti garas rindas, kodētas rakstzīmju virknes un funkciju nosaukumi, piemēram, eval vai base64_decode. Kā atpazīt apmaskotu kodu, parāda Apmaskota PHP koda atpazīšana.

Vai fails ir izsaukts? Skatiens žurnālā

Svarīgākais jautājums pēc atrašanas: vai kāds failu ir izmantojis? Atbilde ir tīmekļa servera piekļuves žurnālos. Meklējiet faila nosaukumu, arī arhivētajos žurnālos.

# Aizdomīgā faila izsaukumi pašreizējos un saspiestos žurnālos (nosaukums kā piemērs)
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

# Tikai sekmīgi izsaukumi ar IP adresi un laiku
grep -h "uploads/2026/10/thumb.php" /var/log/nginx/access.log* | awk '$9 == 200 {print $1, $4, $6, $7}'

Daudzi sekmīgi POST pieprasījumi no dažām adresēm norāda uz aktīvu izmantošanu kā webshell. Trāpījumu trūkums automātiski nenozīmē atvieglojumu, jo žurnāli var būt rotēti, izdzēsti vai nepilnīgi. Ja vietne atrodas aiz CDN vai starpniekservera, tur ir citi protokoli; koplietošanas hostingā piekļuves žurnālus hostinga sniedzējs parasti nodrošina klientu sadaļā. Pievērsiet uzmanību arī pieprasījumiem uz citiem jauniem failiem no tām pašām adresēm, jo tie bieži ved pie citām sastāvdaļām. Žurnālus saglabājiet no 20. oktobra. Kā žurnālus rūpīgi izvērtēt, apraksta ceļvedis Tīmekļa servera žurnālu izvērtēšana pēc uzbrukuma.

Rīkoties nekavējoties

Ja žurnāls rāda sekmīgus nezināma PHP faila izsaukumus, pieņemiet ielaušanos. Nodrošiniet failu un žurnālus, ierobežojiet piekļuvi serverim un pārbaudiet, vai var būt skarti personas dati.

Pēc novērtēšanas: pareizā secība

  1. Nodrošināt: failu nokopēt ar kontrolsummu un laika zīmogiem, nodrošināt žurnālus.
  2. Noskaidrot izcelsmi: pārbaudīt augšupielādes veidlapas, spraudņus un laiku pirms atrašanas.
  3. Meklēt citas sastāvdaļas: papildu faili, cronjobs, jauni administratoru konti.
  4. Bloķēt izpildi: PHP augšupielāžu mapē aizliegt tīmekļa servera līmenī, kā aprakstīts rakstā PHP izpildes aizliegšana augšupielāžu mapēs.
  5. Attīrīt un mainīt piekļuves: tikai tad failu noņemt un atjaunot visas paroles.

Kā PHP SOS palīdz konkrēti?

  • Novērtēt atradumu: Mēs failu pārbaudām, to neizpildot, un to klasificējam.
  • Noskaidrot izmantošanu: Mēs izvērtējam žurnālus un rekonstruējam, kurš failu kad ir izsaucis.
  • Attīrīt pilnībā: Ar ļaunprogrammatūras noņemšanu mēs meklējam visas sastāvdaļas, aizveram cēloni un mainām piekļuves.
  • Novērst atkārtošanos: Mēs bloķējam PHP izpildi rakstāmajās mapēs un uzraugām jaunus failus.

Biežāk uzdotie jautājumi

Vai katrs PHP fails augšupielāžu mapē ir bīstams?

Ne katrs. Daži spraudņi novieto tukšu index.php, lai mapes saturs netiktu uzskaitīts. Visu pārējo, īpaši failus ar saturu, neparastu nosaukumu vai dubultu paplašinājumu, uzskatiet par aizdomu gadījumu.

Vai aizdomīgo failu drīkst atvērt pārlūkprogrammā?

Nē. Izsaukums caur vietni kodu izpilda. Failu lasiet tikai kā tekstu serverī vai kopijā, piemēram, ar less vai head.

Kā noskaidrot, vai fails ir izmantots?

Meklējiet faila nosaukumu tīmekļa servera piekļuves žurnālos. Pieprasījumi ar statusu 200 un POST metodi rāda, ka fails ir izsaukts. Attiecīgās IP adreses un laiki palīdz tālākā izmeklēšanā.

Vai pietiek ar faila izdzēšanu un PHP bloķēšanu augšupielāžu mapē?

Abi ir nepieciešami, bet nepietiekami. Papildus noskaidrojiet, kā fails tur nonāca, meklējiet citas sastāvdaļas un nomainiet piekļuves datus. Citādi uzbrucējs atgriežas pa to pašu ceļu.

Avoti

Tūlītējs kontakts

Katra stunda ir svarīga. Rakstiet mums tūlīt.

Īsi aprakstiet sistēmu, PHP versiju un novēroto. Mēs sazināsimies, noskaidrosim situāciju un strādāsim attālināti, līdz incidents ir slēgts un dokumentēts.

Tūlītēja palīdzība