Röviden: A feltöltési mappában lévő PHP-fájl komoly figyelmeztető jel, mert ott csak képeknek és dokumentumoknak kellene lenniük. A fájlt soha ne nyissa meg a böngészőben, hanem olvassa szövegként, ellenőrizze az időbélyegeket és a tulajdonost, és keresse a fájlnevet a hozzáférési naplókban. Többnyire csak az üres helyőrzők ártalmatlanok, például egy tartalom nélküli index.php; mindent mást lehetséges behatolásként kezeljen.
Miért nincs helye a PHP-nak a feltöltési mappában
A feltöltési mappák azoknak a tartalmaknak valók, amelyeket a látogatók vagy a szerkesztők feltöltenek: képek, PDF-ek, videók. A webszerver-felhasználó ott írhat, különben a feltöltések nem működnének. Éppen ez teszi vonzóvá ezeket a mappákat a támadóknak. Aki egy résen keresztül fájlokat tud írni, oda helyezi őket, ahol az írás engedélyezett.
Az új PHP-fájlok a feltöltési vagy gyorsítótár-mappákban a rendelkezésünkre álló beszámolók szerint a behatolás utáni általános figyelmeztető jelek közé tartoznak. A PHP2Shellre nincsenek megerősített Indicators of Compromise; egy lelet tehát nem mond semmit arról, melyik résen keresztül került oda a fájl. Hogyan lehet biztonságosan megvalósítani a feltöltési funkciókat, azt a Fájlfeltöltés biztonságos megvalósítása PHP-ban írja le.
Hogy egy ilyen fájl kárt okozhat-e, azt a webszerver konfigurációja dönti el. Ha a feltöltési mappában végrehajtja a PHP-fájlokat, minden oda helyezett fájl lehetséges távirányítássá válik. Ha ott a végrehajtás tiltott, a fájl idegen test marad, de eleinte hatás nélkül. Sok telepítésben ezt a zárolást soha nem állították be.
Hogyan kerül PHP-fájl a feltöltési mappába?
Az értékeléshez segít ismerni a lehetséges utakat. Mindegyik más következő kérdésekhez vezet.
| Út | Tipikus háttér | Következő kérdés |
|---|---|---|
| Nem biztonságos feltöltési űrlap | csak a végződés vagy a böngésző által jelzett típus ellenőrzése | Mely űrlapok fogadnak fájlokat? |
| Rés egy pluginban vagy témában | ismert sebezhetőség egy elavult bővítményben | Mely bővítmények elavultak? |
| Ellopott hozzáférési adatok | admin-, FTP- vagy tárhelyfiók | Milyen bejelentkezések voltak utoljára? |
| Kódvégrehajtás egy résen keresztül | például az értelmezőben, ahogyan a PHP2Shellnél lehetséges | Sebezhető volt a PHP az adott időszakban? |
| Jogos plugin | helyőrző, ritkán gyorsítótár-fájlok | A fájl az eredeti csomaghoz tartozik? |
Több út is összejöhet. Az a támadó, aki egy résen keresztül kódot hajt végre, a fájlt talán csak azért helyezi el, hogy később kényelmesebben visszatérhessen.
A lelőhelyek rendszeres felsorolása
Mielőtt egyetlen fájlt értékelne, szerezzen áttekintést. A parancsok csak olvasnak. Az útvonalak WordPress-példák; más rendszereknél igazítsa a feltöltési útvonalat.
# PHP-szerű fájlok a feltöltési mappában mérettel, tulajdonossal, mtime-mal és ctime-mal
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'
# A fájltípus meghatározása tartalom, nem végződés alapján (a PHP-tartalmú képek feltűnnek)
find /var/www/html/wp-content/uploads -type f -newermt "2026-10-17" -exec file {} + | grep -viE "image|pdf|video|audio"
Más rendszerek más írható mappákat használnak, például a fileadmin a TYPO3-nál, az images a Joomlánál vagy a public alatti médiamappa a Shopware 6-nál. Ehhez jönnek az alkalmazás gyorsítótár- és ideiglenes könyvtárai. Multisite telepítéseknél és több weboldalnál egy szerveren ennek megfelelően sok feltöltési mappa van; mindegyik a keresésbe tartozik.
A feltöltési mappában lévő .htaccess és .user.ini fájlok is gyanúsak. Velük a PHP végrehajtása újra bekapcsolható ebben a mappában, vagy a konfiguráció módosítható.
PHP-fájl a feltöltési mappában: a lelet helyes értelmezése
Nem minden találat egyformán komoly. A következő besorolás az első értékelésben segít. Nem helyettesíti a részletes vizsgálatot.
| Lelet | Első besorolás |
|---|---|
index.php nulla bájttal vagy csak egy megjegyzéssel |
többnyire helyőrző a könyvtárlistázás ellen, egyeztetni a pluginnal |
| Tartalmat hordozó PHP-fájl egy havi mappában | magas gyanú |
Dupla végződés, például bild.jpg.php vagy .php.png |
magas gyanú, tipikus álcázás |
Kép, amely a file szerint PHP-kódot tartalmaz |
magas gyanú, beágyazás révén végrehajtható |
.htaccess vagy .user.ini a feltöltési mappában |
gyanú, a konfigurációt ellenőrizni kell |
| A fájl a webszerver-felhasználóé, ctime október 17. után | illik egy weboldalon keresztüli behatoláshoz |
A gyanús fájlokat csak szövegként olvassa, például a head -c 2000 datei.php vagy a less paranccsal. Feltűnőek a nagyon hosszú sorok, a kódolt karakterláncok és az olyan függvénynevek, mint az eval vagy a base64_decode. Hogyan ismeri fel az elrejtett kódot, azt az Elrejtett PHP-kód felismerése mutatja.
Meghívták a fájlt? Egy pillantás a naplóba
A lelet után a legfontosabb kérdés: használta valaki a fájlt? A válasz a webszerver hozzáférési naplóiban van. Keresse a fájlnevet, az archivált naplókban is.
# A gyanús fájl meghívásai az aktuális és a tömörített naplókban (a név példa)
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
# Csak a sikeres meghívások IP-címmel és időponttal
grep -h "uploads/2026/10/thumb.php" /var/log/nginx/access.log* | awk '$9 == 200 {print $1, $4, $6, $7}'
Kevés címről érkező, sok sikeres POST-kérés aktív webshellként való használatra utal. A találatok hiánya nem jelent automatikusan vészjelzést, mert a naplók rotálhatók, törölhetők vagy hiányosak lehetnek. Ha a weboldal CDN vagy proxy mögött fut, további naplók vannak ott; megosztott tárhelyen a tárhelyszolgáltató a hozzáférési naplókat többnyire az ügyfélterületen biztosítja. Figyeljen arra is, hogy ugyanezekről a címekről érkeznek-e kérések más új fájlokhoz, mert azok gyakran további összetevőkhöz vezetnek. Őrizze meg a naplókat 2026. október 20-tól. Hogyan értékeli ki alaposan a naplókat, azt az útmutató A webszerver-naplók kiértékelése támadás után írja le.
Ha a napló egy ismeretlen PHP-fájl sikeres meghívásait mutatja, számítson behatolásra. Mentse a fájlt és a naplókat, korlátozza a hozzáférést a szerverhez, és ellenőrizze, érintettek lehetnek-e személyes adatok.
Az értékelés után: a helyes sorrend
- Mentés: Másolja a fájlt ellenőrző összeggel és időbélyegekkel, mentse a naplókat.
- Az eredet tisztázása: Ellenőrizze a feltöltési űrlapokat, a pluginokat és a lelet előtti időszakot.
- További összetevők keresése: további fájlok, cron-feladatok, új admin-fiókok.
- A végrehajtás tiltása: Tiltsa a PHP-t a feltöltési mappában webszerver szinten, ahogyan a A PHP végrehajtásának tiltása a feltöltési mappákban cikk leírja.
- Tisztítás és hozzáférések cseréje: csak ezután távolítsa el a fájlt, és újítsa meg az összes jelszót.
Hogyan segít konkrétan a PHP SOS?
- A lelet értékelése: Végrehajtás nélkül ellenőrizzük a fájlt, és besoroljuk.
- A használat tisztázása: Kiértékeljük a naplókat, és rekonstruáljuk, ki mikor hívta meg a fájlt.
- Teljes tisztítás: A kártevő-eltávolítással megkeressük az összes összetevőt, lezárjuk az okot, és kicseréljük a hozzáféréseket.
- Az ismétlődés megakadályozása: Tiltjuk a PHP-végrehajtást az írható mappákban, és figyeljük az új fájlokat.
Gyakori kérdések
Veszélyes minden PHP-fájl a feltöltési mappában?
Nem mindegyik. Egyes pluginok üres index.php fájlt helyeznek el, hogy a mappa tartalma ne legyen listázható. Minden mást, különösen a tartalommal, szokatlan névvel vagy dupla végződéssel rendelkező fájlokat, kezeljen gyanús esetként.
Megnyithatom a gyanús fájlt a böngészőben?
Nem. A weboldalon keresztüli meghívás végrehajtja a kódot. A fájlt csak szövegként olvassa a szerveren vagy egy másolatban, például a less vagy a head paranccsal.
Hogyan derítem ki, hogy használták-e a fájlt?
Keresse a fájlnevet a webszerver hozzáférési naplóiban. A 200-as állapotú és POST metódusú kérések azt mutatják, hogy a fájlt meghívták. A hozzájuk tartozó IP-címek és időpontok segítenek a további vizsgálatban.
Elég törölni a fájlt és letiltani a PHP-t a feltöltési mappában?
Mindkettő szükséges, de nem elegendő. Tisztázza emellett, hogyan került oda a fájl, keressen további összetevőket, és cserélje ki a hozzáférési adatokat. Különben a támadó ugyanazon az úton visszatér.