Aktuális helyzet: PHP2Shell. Két kritikus PHP-rés (CVSS 9,2) lehetővé teszi kártékony kód futtatását bejelentkezés nélkül. Javítások 2026. 10. 21. óta.Mi a teendő most →

PHP-fájlok a feltöltési mappában: a lelőhelyek helyes értelmezése

A feltöltési mappában lévő PHP-fájl szinte mindig riasztó jel, de nem minden fájl kártékony kód. Így értékeli a leletet nyomok megsemmisítése nélkül, és tisztázza, hívta-e meg valaki.

Állapot 5 perc olvasási időFelismerés és forenzika

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.

Azonnal cselekedjen

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

  1. Mentés: Másolja a fájlt ellenőrző összeggel és időbélyegekkel, mentse a naplókat.
  2. Az eredet tisztázása: Ellenőrizze a feltöltési űrlapokat, a pluginokat és a lelet előtti időszakot.
  3. További összetevők keresése: további fájlok, cron-feladatok, új admin-fiókok.
  4. 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.
  5. 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.

Források

Azonnali kapcsolat

Minden óra számít. Írjon nekünk most.

Ismertesse röviden a rendszert, a PHP-verziót és a megfigyelését. Jelentkezünk, tisztázzuk a helyzetet, és távolról dolgozunk, amíg az incidens le nem zárul és dokumentálva nem lesz.

Azonnali segítség