Studium przypadku · bezpłatne laboratorium z narracją
PHP2Shell: jak sprawdzić, czy łatka PHP działa
Przejdziesz incydent PHP2Shell krok po kroku: od ostrzeżenia php.net do dowodu, że poprawka działa. W przeglądarce, bez zapisu.
Bramblewood Academy i Harbourline Cloud są fikcyjne, a publiczny przebieg zdarzeń jest prawdziwy. Laboratorium pokazuje, co zrobił atak, a nigdy, jak go wywołać. Stan faktów: · Źródła
Chcesz ćwiczyć to samodzielnie?Web Security PROKurs ataków i obrony aplikacji webowych: 132 laboratoria w przeglądarce.Start edycji 16 listopada 2026Zobacz kurs
Polecenia i skrypty w laboratorium są napisane dla fikcyjnych serwerów tej symulacji. Nie przenoś ich 1:1 na swój serwer: zatrzymanie kontenera, zmiana php.ini czy podmiana plików PHP mogą wyłączyć usługę.
Laboratorium otwiera się w trybie Z tutorem: przechodzisz krok po kroku we własnym tempie. Wolisz obejrzeć całość jak pokaz? Przełącz tryb na Pokaz.
Demo i laboratoria działają najlepiej na komputerze — laptopie albo komputerze stacjonarnym.
Lektor: głos syntetyczny. Po uruchomieniu laboratorium pobiera ok. 27 MB danych.
Chcesz się tego nauczyć?

Web Security PRO
Kurs ataków i obrony aplikacji webowych. Ćwiczysz samodzielnie w 132 laboratoriach w przeglądarce: rozpoznanie, podatności, dowód i sprawdzenie poprawki.
- Start edycji
- 16 listopada 2026
- Planowana cena pierwszej edycji
- 790 zł brutto
- Środowisko
- W przeglądarce, bez instalacji
Program kursu opiera się na OWASP Web Security Testing Guide (WSTG), powszechnie stosowanym przewodniku testowania bezpieczeństwa aplikacji webowych.
W kursie robisz to samodzielnie
Cztery umiejętności z tego przypadku
- Rozpoznasz serwer i jego wersjęi sprawdzisz, czy baner mówi prawdę. Jak w fazie 2.
- Znajdziesz zapomniane hosty i ryzykowne ustawieniadrugą nazwę hosta tej samej aplikacji i phpinfo, które nie może być publiczne. Jak w tym przypadku.
- Udowodnisz podatność bez zgadywaniaz próbą kontrolną, która mogłaby wypaść inaczej. Jak w fazie 5.
- Sprawdzisz, czy poprawka naprawdę działaponownym testem, a nie numerem wersji. Jak w fazie 8.
Przypadek PHP2Shell to osobne laboratorium, poza 132 laboratoriami kursu. Web Security PRO uczy testowania aplikacji web — nie łatania obrazów kontenerów ani prowadzenia reakcji na incydent.
Mapa do OWASP WSTG (dla zaawansowanych)
- Co widzisz w przypadku
Baner z wersją to trop, nie dowód.
Rozdział i otwarcieRozdział 01 · Rozpoznanie aplikacji
- Co widzisz w przypadku
Druga nazwa hosta prowadzi do tej samej aplikacji.
Rozdział i otwarcieRozdział 01 · Rozpoznanie aplikacji
- Co widzisz w przypadku
Co stoi między internetem a serwerem.
Rozdział i otwarcieRozdział 01 · Rozpoznanie aplikacji
- Co widzisz w przypadku
Znane podatności oprogramowania serwera i ponowny test po poprawce.
Rozdział i otwarcieRozdział 02 · Konfiguracja i wdrożenie
- Co widzisz w przypadku
phpinfo jako przyrząd, który nie może być publiczny.
Rozdział i otwarcieRozdział 02 · Konfiguracja i wdrożenie
- Co widzisz w przypadku
Zrzut bazy przechowywany poza katalogiem aplikacji.
Rozdział i otwarcieRozdział 02 · Konfiguracja i wdrożenie
- Co widzisz w przypadku
Ślad, jaki zostawia powłoka uruchomiona przez serwer WWW.
Rozdział i otwarcieRozdział 07 · Dane wejściowe i wstrzyknięcia
Rozdziały 01 i 02 otwierają się w pierwszych dwóch tygodniach edycji. Odblokowany rozdział już się nie zamyka.
Przebieg laboratorium
Cztery dni w dziewięciu fazach.
Wtorek wieczorem: zapowiedź. Środa: inwentaryzacja, logi, izolacja, poprawka i dowód. Czwartek: restart, który cofnął poprawkę. Piątek: trzecia luka i zamknięcie incydentu.
W laboratorium wcielasz się w osobę z dyżuru w fikcyjnej organizacji; „my” w narracji oznacza jej zespół. Nic nie wpisujesz: kroki same uruchamiają polecenia, a tutor wskazuje, gdzie patrzeć.
Przeczytaj ostrzeżenie, zanim wyjdą poprawki
php.net zapowiada poprawki dwóch krytycznych luk, jeszcze bez szczegółów. Powstaje plan: inwentaryzacja, ekspozycja, rozwiązania doraźne, poprawka i dowód.
Zidentyfikuj własny host z zewnątrz i od środka
Nagłówki i skan z zewnątrz, wersja i moduł PHP od środka. Druga nazwa hosta prowadzi do tej samej aplikacji.
Czy to konfiguracja, w której zademonstrowano atak?
Biuletyny są już publiczne. Skrypt porównujący numery wersji daje właściwy werdykt z niewłaściwego powodu, a na drodze żądania nic nie filtruje ruchu przed serwerem.
Pokaż pozostałe 6 faz
Jak atak wyglądał od środka
Dziennik błędów i dziennik dostępu na jednym zegarze: awarie procesów serwera i seria odpowiedzi 500 z jednego adresu. Werdykt: ekspozycja potwierdzona, przejęcia nie wykluczono.
Sprawdzenie przejęcia i próby kontrolne; zweryfikowany zrzut
Trzy sprawdzenia śladów, każde z próbą kontrolną, która mogłaby wypaść inaczej, i to, co wolno z nich wywnioskować. Przed jakąkolwiek zmianą: zrzut bazy, sprawdzony, zanim się na nim polega.
Offline i rozwiązanie doraźne, które tu nic nie kosztuje
Serwis zostaje wyłączony, a koszt tej decyzji jest nazwany wprost. Ustawienie zalecane przez php.net zamyka jedną ścieżkę ataku, ale nie usuwa podatności.
0 upgraded: obraz nie ma bazy pakietów
Menedżer pakietów nie ma czego zaktualizować. Poprawka trafia do kontenera z podpisanych pakietów dystrybucji — i trzeba wiedzieć, gdzie dokładnie zostaje.
Udowodnij poprawkę kompilacją, którą ładuje serwer, a nie banerem
Baner nadal pokazuje PHP/8.3.6. Rozstrzyga data kompilacji, plik modułu ładowany przez serwer WWW i sprawdzenie, które może wypaść w obie strony.
Restart, który cofnął poprawkę; uzupełnienie z 23 października
Restart z panelu dostawcy tworzy kontener od nowa i wraca stara kompilacja. Potem ponowna poprawka, trzecia luka w piątek i siedem wniosków.
Wnioski na kolejny incydent
Siedem zasad, które działają nie tylko przy tej luce.
- Uwzględnij w inwentaryzacji każdą nazwę hosta, nie tylko tę publiczną.
- Ekspozycja nie oznacza przejęcia: zapisz, co potwierdzono, a czego nie wykluczono.
- Sprawdzenie, które daje ten sam wynik niezależnie od stanu serwera, niczego nie dowodzi.
- Zanim cokolwiek zmienisz, wykonaj i zweryfikuj zrzut bazy.
- Rozwiązanie doraźne zamyka jedną ścieżkę ataku. Dopiero aktualizacja usuwa podatność.
- Udowodnij poprawkę kompilacją, którą serwer faktycznie ładuje, a nie banerem z wersją.
- Niektóre restarty tworzą kontener od nowa, więc po każdym restarcie sprawdzaj kompilację.
cyberszkola.Studium przypadku: PHP2Shell
Lista kontrolna do pobrania
Czy serwer ładuje poprawione PHP? Osiem sprawdzeń.
Lista streszcza metodę z przypadku. Nie zastępuje zaleceń producenta ani dostawcy hostingu i nie jest instrukcją testowania cudzych systemów.
To materiał edukacyjny, a nie instrukcja dla Twojego serwera: każdą zmianę najpierw sprawdź w środowisku testowym, z aktualną kopią zapasową, i wprowadzaj ją na własną odpowiedzialność.
- Zanim cokolwiek zmienisz, wykonaj i zweryfikuj zrzut bazy. Przechowuj go poza katalogiem aplikacji.
- Uwzględnij w inwentaryzacji każdą nazwę hosta, pod którą odpowiada serwer, nie tylko adres publiczny.
- Nie oceniaj poprawki po banerze X-Powered-By ani po numerze wersji. Niektóre dystrybucje dodają poprawki bez zmiany numeru: Ubuntu 24.04 pokazuje 8.3.6 przed łatką i po niej.
- Porównaj datę kompilacji z php -v i z pola Build Date w phpinfo z datą poprawki w changelogu pakietu dystrybucji.
- Sprawdź plik modułu PHP, który ładuje serwer WWW. Wiersz poleceń i serwer WWW mogą używać innych kompilacji.
- phpinfo uruchamiaj tylko na stronie niedostępnej publicznie i usuń ją po sprawdzeniu.
- Sprawdzenie, które daje ten sam wynik niezależnie od stanu serwera, niczego nie dowodzi. Skrypt sprawdzający musi umieć zwrócić „bez poprawki” i „z poprawką”, a gdy dane nie pozwalają rozstrzygnąć, „nie da się stwierdzić”.
- Po każdym restarcie z panelu dostawcy i po każdej aktualizacji obrazu sprawdź kompilację ponownie. Niektóre restarty tworzą kontener od nowa.
php.net zaleca ustawienie session.upload_progress.enabled = 0 do następnego regularnego wydania PHP, także po aktualizacji z 21 października. Zamyka ono jedną ścieżkę ataku; dopiero aktualizacja usuwa podatność.
Zobacz cały incydent w bezpłatnym laboratorium z lektorem (w przeglądarce, bez zapisu): cyberszkola.pl/php2shell
Dwie strony A4: lista z kodem QR do bezpłatnego laboratorium i wykaz źródeł.
Źródła
- PHP security advisory GHSA-w8hw-w9fx-j79w — CVE-2026-109618, RCE via OOM corruption
- PHP security advisory GHSA-6wmf-4rv5-p3rp — CVE-2026-109619, RCE via stale global state
- php.net — advance notice of 20 October 2026
- php.net — informational advisory: session upload progress (23 October 2026, CVE-2026-115560)
- CERT-EU Security Advisory 2026-018 — Critical Vulnerabilities in PHP (v1.2)
- Ubuntu Security — CVE-2026-109618 (package table, USN-8948-1/2)
- Launchpad — php8.3 8.3.6-0ubuntu0.24.04.13 (changelog: SECURITY UPDATE, CVE-2026-109618/109619)
- Tenable — php2shell FAQ (updated 28 October 2026)
- Datadog Security Labs — PHP2Shell: what the logs and processes show (updated 23 October 2026)
- Varonis — PHP2Shell: the log pattern to hunt for
- NCSC-NL — third-party software that embeds PHP (inventory aid, referenced by CERT-EU)
- CISA — Known Exploited Vulnerabilities Catalog
- OWASP WSTG-CONF-01: Test Network Infrastructure Configuration
- OWASP WSTG-INFO-02: Fingerprint Web Server
- OWASP WSTG-INFO-08: Fingerprint Web Application Framework
Pierwsza edycja
Następny krok: ćwicz to samodzielnie.
Start 16 listopada 2026 · 13 tygodni, nowy rozdział co poniedziałek · dostęp na 365 dni · konsumenci: 14 dni na zwrot bez podawania przyczyny
- 132 laboratoria techniczne: tematy WSTG i autorskie rozszerzenia.
- Dostęp przez 365 dni od zakupu, bez automatycznego odnawiania.
- Interaktywne prowadzenie z tutorem, narracją i narzędziami w przeglądarce. Bez instalacji Dockera, VPN ani własnego laboratorium.
- Certyfikat ukończenia w języku angielskim, z kodem weryfikacyjnym.
- Po polsku i po angielsku.
Osoby z listy dostaną informację o zapisach i pełną ofertę, zanim zapisy zostaną otwarte publicznie.
Laboratorium PHP2Shell jest bezpłatne i działa bez zapisu. Formularz zapisu dotyczy wyłącznie listy oczekujących Web Security PRO.
Dla zespołów
Omówcie ten przypadek w zespole.
Link do tej strony możesz przesłać dalej albo uruchomić laboratorium na spotkaniu zespołu. Siedem wniosków i lista kontrolna są gotowe do wydruku.
Web Security PRO dla firm: licencje dla zespołu, faktura VAT i bezpłatny pilotaż przed zakupem licencji.
Źródła i stan faktów
Publiczne fakty, fikcyjna organizacja.
Stan faktów:
Publiczny przebieg zdarzeń pochodzi z biuletynów i komunikatów poniżej. Organizacja, jej dostawca, serwery, adresy, logi i liczby w laboratorium są fikcyjne; adresy IP pochodzą z zakresów przeznaczonych do dokumentacji. Laboratorium cytuje 21 publicznych źródeł.
Oś czasu i źródła
- 20.10.2026 — php.net zapowiada poprawki dwóch krytycznych luk (CVSS 9,2).
- 21.10.2026 — wydania 8.5.12, 8.4.27, 8.3.36 i 8.2.35 oraz dwa biuletyny GitHub; Ubuntu publikuje poprawioną kompilację, zachowując numer 8.3.6.
- 23.10.2026 — php.net informuje o trzeciej luce (CVE-2026-115560), poprawianej w zwykłym cyklu, i zaleca pozostawić ustawienie doraźne.
- 26.10.2026 — CISA dodaje CVE-2026-109618 i CVE-2026-109619 do katalogu KEV.
- PHP security advisory GHSA-w8hw-w9fx-j79w — CVE-2026-109618, RCE via OOM corruption
- PHP security advisory GHSA-6wmf-4rv5-p3rp — CVE-2026-109619, RCE via stale global state
- php.net — advance notice of 20 October 2026
- php.net — informational advisory: session upload progress (23 October 2026, CVE-2026-115560)
- CERT-EU Security Advisory 2026-018 — Critical Vulnerabilities in PHP (v1.2)
- Ubuntu Security — CVE-2026-109618 (package table, USN-8948-1/2)
- Launchpad — php8.3 8.3.6-0ubuntu0.24.04.13 (changelog: SECURITY UPDATE, CVE-2026-109618/109619)
- Tenable — php2shell FAQ (updated 28 October 2026)
- Datadog Security Labs — PHP2Shell: what the logs and processes show (updated 23 October 2026)
- Varonis — PHP2Shell: the log pattern to hunt for
- NCSC-NL — third-party software that embeds PHP (inventory aid, referenced by CERT-EU)
- CISA — Known Exploited Vulnerabilities Catalog
- OWASP WSTG-CONF-01: Test Network Infrastructure Configuration
- OWASP WSTG-INFO-02: Fingerprint Web Server
- OWASP WSTG-INFO-08: Fingerprint Web Application Framework
Pytania
Warto wiedzieć.
Czy to prawdziwy incydent?
Luki CVE-2026-109618 i CVE-2026-109619 oraz publiczny przebieg zdarzeń są prawdziwe i opisane w źródłach. Bramblewood Academy, Harbourline Cloud, ich serwery, adresy, logi i liczby w laboratorium są fikcyjne.
Czy laboratorium pokazuje, jak przeprowadzić atak?
Nie. Pokazuje to, co obrońca widzi w logach, procesach i konfiguracji serwera, i jak ocenić ekspozycję. Nie zawiera żądań, ładunków ani narzędzi, które pozwoliłyby wywołać lukę.
Czy mogę użyć poleceń z laboratorium na swoim serwerze?
Nie przenoś ich 1:1. Polecenia, które tylko odczytują dane, na przykład wersję PHP, nagłówki odpowiedzi czy logi, zwykle niczego nie zmieniają. Te, które przełączają kontekst Dockera, zatrzymują kontener, zmieniają php.ini albo podmieniają pliki PHP, są napisane dla fikcyjnego serwera z laboratorium i na produkcji mogą wyłączyć usługę. Postępuj według zaleceń producenta i dostawcy, każdą zmianę najpierw sprawdź w środowisku testowym, z aktualną kopią zapasową, i wprowadzaj ją na własną odpowiedzialność.
Czy muszę się zapisać albo założyć konto?
Nie. Laboratorium jest bezpłatne i działa w przeglądarce, bez konta i bez podawania adresu e-mail. Formularze na tej stronie dotyczą wyłącznie listy oczekujących Web Security PRO i są dobrowolne.
Ile to trwa i czym różnią się tryby?
Pokaz trwa ok. 22 minut i prowadzi sam, jak film z narracją. W trybie Z tutorem przechodzisz krok po kroku przyciskami Dalej i Wstecz, we własnym tempie. Tekst narracji jest na ekranie, więc laboratorium działa też bez dźwięku.
Na czym je uruchomić?
Na komputerze z ekranem co najmniej 1280 × 720, w aktualnej przeglądarce. Po uruchomieniu laboratorium pobiera ok. 27 MB danych. Na telefonie przeczytasz opis i wnioski, a link wyślesz sobie na komputer.
Dlaczego laboratorium zamyka się po otwarciu narzędzi deweloperskich?
To ochrona treści, taka sama jak w pozostałych demo na cyberszkola.pl. Zamknij narzędzia deweloperskie i kliknij „Wróć do laboratorium”; w trybie Z tutorem pasek „Rozdziały” pozwala przejść do wybranego rozdziału.
Jak ten przypadek ma się do Web Security PRO?
To osobne, bezpłatne laboratorium, poza 132 laboratoriami kursu, zbudowane w tym samym środowisku. W Web Security PRO tę samą metodę — rozpoznanie, dowód i ponowne sprawdzenie poprawki — ćwiczysz samodzielnie, od strony testu aplikacji. Kurs nie uczy łatania obrazów kontenerów ani prowadzenia reakcji na incydent.

