Problem, którego nikt nie zauważył
Podczas wewnętrznych testów z wykorzystaniem platformy TestSec przeprowadziliśmy pełny, zautomatyzowany proces analizy jednej z aplikacji webowych.
System szybko zweryfikował coś istotnego: luka typu reflected XSS obecna w pozornie nieszkodliwym zasobie testowym. To dobry przykład, jak łatwo przeoczyć realne zagrożenie — i jak skutecznie działa automatyczny test penetracyjny, który analizuje infrastrukturę w trybie ciągłym, bez udziału człowieka.
Wykryta podatność
Analizowany zasób był publicznie dostępny pod adresem IP z końcówką 110. Znajdował się tam prosty skrypt CGI, którego zadaniem było wyświetlanie wartości przekazywanej w URL. Tego typu komponenty często funkcjonują jako tymczasowe lub pomocnicze elementy aplikacji – rzadko są testowane pod kątem bezpieczeństwa.
TestSec, działając w sposób w pełni automatyczny, przeskanował aplikację i wykonał próbę ataku typu reflected XSS — z wynikiem pozytywnym.
Reflected cross-site scripting (XSS) to podatność, która polega na wstrzyknięciu złośliwego kodu (np. JavaScript) do parametru aplikacji webowej, a następnie jego natychmiastowym „odbiciu” (czyli wyświetleniu/uruchomieniu) w przeglądarce użytkownika – bez odpowiedniej walidacji. Jeśli aplikacja nie zabezpiecza danych wejściowych, możliwy jest atak.
TestSec potwierdził, że możliwe było wykonanie dowolnego kodu w przeglądarce:
https://95.X.X.110/cgi-bin/test/test.cgi?aaa”><script>alert(’xss’)</script>
Ocena ryzyka – CVSS 7.1.
Mimo że skrypt wyglądał na nieszkodliwy, luka mogła prowadzić do:
przejęcia ciasteczek sesyjnych i kradzieży danych użytkownika,
podszywania się pod zalogowanych użytkowników,
przekierowania na złośliwe strony lub infekcji urządzeń,
poważnych strat wizerunkowych i potencjalnych naruszeń RODO.
Podatność została oceniona jako wysokiego ryzyka – CVSS 7.1.
TestSec: wykrycie, potwierdzenie, raport
Cały proces przebiegł automatycznie – bez potrzeby pisania exploitów czy analizy kodu przez człowieka. TestSec:
wykrył podejrzany punkt wejścia,
przeprowadził próbę ataku i potwierdził, że luka jest aktywna,
sklasyfikował zagrożenie i wygenerował raport z rekomendacją natychmiastowego usunięcia skryptu.
Wiele organizacji posiada podobne komponenty – stworzone tymczasowo, testowo, zapomniane. To właśnie w takich miejscach często ukrywają się realne luki, które mogą zostać wykorzystane przez osoby niepowołane.
Ten przykład pokazuje, że nawet proste fragmenty aplikacji mogą stanowić zagrożenie, jeśli nie są regularnie weryfikowane. Zautomatyzowany test penetracyjny, działający w sposób ciągły i nieprzerwany, pozwala te zagrożenia wychwycić na czas – zanim zrobi to ktoś z zewnątrz.