ARK. 1System · Standardy

OWASP Top 10:2025 — dziesięć kategorii ryzyka aplikacji webowych.

OWASP Top 10 to najczęściej cytowana lista ryzyk bezpieczeństwa aplikacji webowych: dziesięć kategorii ułożonych według danych z milionów przebadanych aplikacji i ankiety wśród praktyków. Nie jest listą kontrolną do odhaczenia, tylko wspólnym językiem — mówi, gdzie aplikacje pękają najczęściej i najboleśniej. Tu jest cała edycja 2025, kategoria po kategorii, i uczciwa odpowiedź na pytanie, ile z niej widać ze skanu strony z zewnątrz.

Źródło: OWASP Top 10:2025 (edycja 2025, ósma; licencja CC BY-SA 4.0), odczyt 26.09.2026. Opisy są naszym opracowaniem, nie tłumaczeniem. Kolumny „Na WordPressie” i „Co widzi skaner” odnoszą kategorie do stron, które monitorujemy, i do testów opisanych w Zestawach testów.

Kategorii
102 nowe albo poszerzone
CWE przypisanych
249z 589 przeanalizowanych
Aplikacji w danych
2,8 mln13 dostawców danych
Widać z zewnątrz
8 z 10w pełni 2, reszta częściowo albo po skutkach
RYS. 1Z 2021 do 2025: co awansowało, co spadło, co jest nowelinia przerywana = kategoria wchłonięta · ramka przerywana = nowa

Najmocniej awansowała błędna konfiguracja (z 5. na 2. miejsce): coraz więcej zachowania aplikacji ustawia się konfiguracją, nie kodem. Komponenty z lukami (A06:2021) urosły do całego łańcucha dostaw i mają najwyższy średni wpływ w zestawieniu. SSRF przestała być osobną kategorią — to odmiana złamanej kontroli dostępu. Nowa A10 zbiera błędy obsługi sytuacji wyjątkowych, które wcześniej rozpraszały się po jakości kodu.

TAB. 1Dziesięć kategorii 2025liczby z tabel kategorii OWASP · kliknij nazwę, żeby przejść do karty
KodKategoriaZmiana wobec 2021CWECzęstość maxPokrycie śr.Eksploat.WpływCVEZ zewnątrz
A01Złamana kontrola dostępuBroken Access Controlbez zmianA01:2021, dalej pierwsza; wchłonęła SSRF (A10:2021)4020,15 %42,93 %7,043,8432 654częściowo
A02Błędna konfiguracja bezpieczeństwaSecurity MisconfigurationawansA05:2021 → druga pozycja1627,70 %52,35 %7,963,971375dobrze
A03Awarie łańcucha dostaw oprogramowaniaSoftware Supply Chain FailuresrozszerzonaA06:2021 „Vulnerable and Outdated Components” poszerzona o cały łańcuch dostaw69,56 %27,47 %8,175,2311dobrze
A04Błędy kryptograficzneCryptographic FailuresspadekA02:2021 → czwarta pozycja3213,77 %47,74 %7,233,902185częściowo
A05WstrzyknięciaInjectionspadekA03:2021 → piąta pozycja3713,77 %42,93 %7,154,3262 445skutki
A06Niebezpieczny projektInsecure DesignspadekA04:2021 → szósta pozycja3922,18 %35,18 %6,964,057647nie widać
A07Błędy uwierzytelnianiaAuthentication Failuresnowa nazwaA07:2021 „Identification and Authentication Failures” — ta sama pozycja, krótsza nazwa3615,80 %37,14 %7,694,447147częściowo
A08Naruszenie integralności oprogramowania lub danychSoftware or Data Integrity Failuresbez zmianA08:2021 — ta sama pozycja148,98 %45,49 %7,114,793331skutki
A09Braki w logowaniu i alarmowaniuSecurity Logging and Alerting Failuresnowa nazwaA09:2021 „…Monitoring Failures” — nacisk przeniesiony z monitoringu na alarm511,33 %46,48 %7,192,65723nie widać
A10Złe obsługiwanie sytuacji wyjątkowychMishandling of Exceptional Conditionsnowanowa kategoria2420,67 %37,95 %7,113,813416skutki
Razem249120 934
Kolejność
Pozycja łączy częstość, pokrycie, łatwość wykorzystania i wpływ; osiem kategorii wynika z danych, dwie dodała ankieta praktyków.
Z zewnątrz
Ile kategorii widzi skan strony bez logowania i bez kodu: dobrze · częściowo · skutki (widać dopiero szkodę) · nie widać.
Liczby
Definicje kolumn w TAB. 14 na końcu strony.
TAB. 2A01:2025 · Złamana kontrola dostępuBroken Access Control
Czym jestUżytkownik robi coś, do czego nie ma prawa: czyta cudze dane, zmienia cudze rekordy, wchodzi do panelu, który go nie dotyczy. Aplikacja wie, kim jest, ale nie sprawdza, czy wolno mu to zrobić.
Jak wygląda01 Domyślne „wolno” zamiast domyślnego „nie wolno” — nowy zasób jest otwarty, dopóki ktoś nie pamięta go zamknąć.02 Zmiana identyfikatora w adresie (…/faktura/1041 → 1042) pokazuje cudzy dokument (IDOR).03 Endpoint API przyjmuje POST, PUT i DELETE bez sprawdzenia uprawnień, bo „przecież nikt nie zna adresu”.04 Podniesienie uprawnień przez podmianę ciasteczka albo pola w tokenie JWT.05 Wymuszone wejście pod adres panelu, który nie ma linku, ale nie ma też blokady.06 SSRF: serwer pobiera adres podany przez użytkownika i sięga nim do sieci wewnętrznej.
Jak zapobiegać01 Odmowa domyślnie — wyjątkiem są tylko zasoby publiczne.02 Jeden mechanizm kontroli dostępu użyty w całej aplikacji, nie sprawdzenia rozsiane po widokach.03 Sprawdzanie właściciela rekordu przy każdym odczycie i zapisie.04 Unieważnianie sesji po stronie serwera przy wylogowaniu; krótko żyjące tokeny.05 Limit żądań na API i alarm przy serii odmów dostępu.
Charakterystyczne CWECWE-284 Improper Access ControlCWE-862 Missing AuthorizationCWE-639 Authorization Bypass Through User-Controlled KeyCWE-352 Cross-Site Request ForgeryCWE-918 Server-Side Request Forgery
LiczbyCWE 40 · częstość max 20,15 % / śr. 3,74 % · pokrycie max 100,00 % / śr. 42,93 % · eksploatacja 7,04 · wpływ 3,84 · wystąpienia 1 839 701 · CVE 32 654
Na WordPressieNajczęstszy wzorzec w podatnościach wtyczek: trasa REST albo akcja AJAX bez sprawdzenia uprawnień (brak permission_callback, brak current_user_can) i brak nonce, czyli CSRF. Rdzeń WordPressa sam ujawnia loginy autorów (/wp-json/wp/v2/users, ?author=1) i ma pingback w XML-RPC, który bywa używany jako SSRF.
Co widzi skanerczęściowo exposureWidzi objawy wystawienia: wyliczanie użytkowników (exposure_users_enum, exposure_author_enum), otwartą rejestrację (open_registration) i XML-RPC (exposure_xmlrpc). Nie widzi brakującego sprawdzenia uprawnień we wtyczce — to wymaga zalogowania i znajomości kodu; znane przypadki łapie dopiero dopasowanie wersji do CVE (A03).
TAB. 3A02:2025 · Błędna konfiguracja bezpieczeństwaSecurity Misconfiguration
Czym jestSystem, serwer albo usługa chmurowa ustawione źle z punktu widzenia bezpieczeństwa. Kod może być poprawny — dziurę robi to, jak go wdrożono i co zostało włączone.
Jak wygląda01 Przykładowe aplikacje i konta z domyślnym hasłem zostawione na serwerze produkcyjnym.02 Włączone listowanie katalogów — każdy może pobrać pliki, których nikt nie linkował.03 Szczegółowe komunikaty błędów ze śladem stosu i wersjami komponentów.04 Zasobnik w chmurze udostępniony „każdemu z linkiem” albo całemu internetowi.05 Brak nagłówków bezpieczeństwa albo ustawienia, które je osłabiają.06 Zbędne usługi, porty i funkcje pozostawione włączone.
Jak zapobiegać01 Powtarzalny proces utwardzania — każde środowisko stawiane tak samo, najlepiej automatem.02 Usunięcie wszystkiego, co niepotrzebne: przykładów, dokumentacji, nieużywanych modułów.03 Wyłączone listowanie katalogów i ogólne komunikaty błędów dla użytkownika.04 Nagłówki bezpieczeństwa wysyłane do przeglądarki (HSTS, CSP, X-Content-Type-Options…).05 Automatyczna weryfikacja konfiguracji we wszystkich środowiskach; przegląd przy każdej łatce.
Charakterystyczne CWECWE-16 ConfigurationCWE-611 XML External Entity Reference (XXE)CWE-489 Active Debug CodeCWE-526 Exposure of Sensitive Information Through Environmental Variables
LiczbyCWE 16 · częstość max 27,70 % / śr. 3,00 % · pokrycie max 100,00 % / śr. 52,35 % · eksploatacja 7,96 · wpływ 3,97 · wystąpienia 719 084 · CVE 1375
Na WordPressieKlasyka stron firmowych: kopia wp-config.php.bak w katalogu głównym, pozostawiony debug.log, phpinfo.php po instalacji, katalog .git wgrany razem ze stroną, listowanie /wp-content/uploads/, zrzut bazy .sql po migracji. Każdy z tych plików da się pobrać jednym żądaniem.
Co widzi skanerdobrze exposure · security_headersNajlepiej pokryta kategoria. Test exposure to 25 sond ścieżek (.env, .git, kopie wp-config, zrzuty SQL, archiwa, phpinfo, konsola bazy, debug.log, listowanie katalogów, kopie .htaccess). Test security_headers sprawdza sześć nagłówków ochronnych. Nie widać konfiguracji, która nie zostawia śladu w odpowiedzi HTTP (uprawnienia plików, ustawienia bazy, panel hostingu).
TAB. 4A03:2025 · Awarie łańcucha dostaw oprogramowaniaSoftware Supply Chain Failures
Czym jestZłamanie albo zaniedbanie w procesie budowania, dystrybucji i aktualizowania oprogramowania — od przestarzałej biblioteki po przejęte konto opiekuna pakietu i skompromitowany pipeline.
Jak wygląda01 Komponenty stare albo porzucone przez autorów, nadal działające na produkcji.02 Brak wiedzy, jakie zależności przechodnie siedzą pod spodem.03 Kod z niezweryfikowanego źródła wgrany bez przeglądu.04 Łatki instalowane miesiącami po publikacji podatności.05 Słabo chronione repozytoria i pipeline’y budowania; jedna osoba może wszystko.
Jak zapobiegać01 Spis składników (SBOM) — wiesz, co masz, łącznie z zależnościami zależności.02 Stałe śledzenie baz CVE i biuletynów producentów.03 Komponenty tylko z oficjalnych źródeł, bezpiecznym kanałem.04 Wdrożenia etapowe, żeby przejęty dostawca nie trafił od razu wszędzie.05 MFA i rozdział obowiązków w repozytoriach, CI/CD i narzędziach deweloperskich.
Charakterystyczne CWECWE-1104 Use of Unmaintained Third Party ComponentsCWE-1395 Dependency on Vulnerable Third-Party ComponentCWE-1357 Reliance on Insufficiently Trustworthy ComponentCWE-1329 Reliance on Component That is Not UpdateableCWE-447 Use of Obsolete Function
LiczbyCWE 6 · częstość max 9,56 % / śr. 5,72 % · pokrycie max 65,42 % / śr. 27,47 % · eksploatacja 8,17 · wpływ 5,23 · wystąpienia 215 248 · CVE 11
Na WordPressieTu leży większość realnych włamań na strony WordPress: nieaktualne wtyczki i motywy, wtyczki wycofane z katalogu wordpress.org, „nulled” motywy premium z doklejonym kodem, motyw kupiony raz i nigdy nieaktualizowany. Najwyższy średni wpływ ze wszystkich kategorii (5,23) zgadza się z tym, co widzimy w portfolio.
Co widzi skanerdobrze wp_fingerprint · vuln_match · version_summary · wpscanRdzeń naszego skanera: wp_fingerprint ustala z zewnątrz wersje rdzenia, wtyczek, motywu i PHP; vuln_match i version_summary porównują je z indeksem podatności Wordfence; wpscan dociąga wtyczki, których Wordfence nie zna. Katalog Wiedza → Rozszerzenia pokazuje wtyczki wycofane. Granica: wtyczka, która nie zdradza wersji z zewnątrz, zostaje „wersja nieznana”, a nie „czysta”.
TAB. 5A04:2025 · Błędy kryptograficzneCryptographic Failures
Czym jestBrak szyfrowania, szyfrowanie za słabe, klucze w złym miejscu albo błędy w użyciu kryptografii — skutkiem jest ujawnienie danych, które miały być chronione.
Jak wygląda01 Dane przesyłane bez szyfrowania — sesję da się przejąć w otwartej sieci.02 Hasła hashowane słabym albo niesolonym algorytmem, łamane tablicami tęczowymi.03 Klucze kryptograficzne zaszyte w kodzie źródłowym albo domyślne.04 Przestarzałe algorytmy (MD5, SHA-1) i ponownie użyte wektory inicjujące.05 Brak weryfikacji certyfikatu i łańcucha zaufania.
Jak zapobiegać01 Szyfrowanie danych wrażliwych w spoczynku i TLS 1.2 lub nowszy w transmisji.02 Hasła tylko przez adaptacyjne, solone funkcje z czynnikiem pracy (np. Argon2, bcrypt).03 Klucze w HSM albo menedżerze sekretów, nigdy w repozytorium.04 Szyfrowanie uwierzytelnione zamiast „gołego” szyfrowania.05 Brak cache’owania odpowiedzi z danymi wrażliwymi; przygotowanie na kryptografię postkwantową.
Charakterystyczne CWECWE-327 Use of a Broken or Risky Cryptographic AlgorithmCWE-916 Use of Password Hash With Insufficient Computational EffortCWE-759 Use of a One-Way Hash without a SaltCWE-338 Use of Cryptographically Weak PRNGCWE-331 Insufficient Entropy
LiczbyCWE 32 · częstość max 13,77 % / śr. 3,80 % · pokrycie max 100,00 % / śr. 47,74 % · eksploatacja 7,23 · wpływ 3,90 · wystąpienia 1 665 348 · CVE 2185
Na WordPressieNa stronie firmowej to głównie warstwa transportu: certyfikat, który się nie odnowił, brak przekierowania na https://, obrazki i skrypty ładowane przez http:// (mixed content), brak HSTS. Hashowanie haseł załatwia rdzeń — od WordPressa 6.8 domyślnie bcrypt zamiast phpass.
Co widzi skanerczęściowo ssl · redirect · mixed_content · security_headersWidzi transport: ssl (ważność i zgodność nazwy certyfikatu), redirect (http → https), mixed_content, brak HSTS w security_headers. Nie widzi niczego po stronie serwera — jak są przechowywane hasła, klucze i dane w bazie.
TAB. 6A05:2025 · WstrzyknięciaInjection
Czym jestDane od użytkownika trafiają do interpretera — bazy, przeglądarki, powłoki — i ten wykonuje ich część jako polecenie. Najwięcej CVE ze wszystkich kategorii (62 445).
Jak wygląda01 SQL injection — parametr zmienia logikę zapytania (' OR '1'='1).02 Cross-site scripting (XSS) — skrypt napastnika trafia na stronę i wykonuje się w przeglądarce ofiary.03 Wstrzyknięcie poleceń systemu operacyjnego przez pole formularza.04 Wstrzyknięcia NoSQL, LDAP i w zapytania ORM.
Jak zapobiegać01 Bezpieczne API z parametrami — dane nigdy nie są sklejane z poleceniem.02 Walidacja po stronie serwera według listy dozwolonych wartości.03 Escapowanie właściwe dla kontekstu tam, gdzie zapytanie musi być dynamiczne.04 Nazwy tabel i kolumn nigdy z danych użytkownika — tych nie da się bezpiecznie escapować.05 SAST, DAST i fuzzing w pipeline, przegląd kodu miejsc styku z interpreterem.
Charakterystyczne CWECWE-79 Cross-site Scripting (XSS)CWE-89 SQL InjectionCWE-78 OS Command InjectionCWE-94 Code InjectionCWE-90 LDAP Injection
LiczbyCWE 37 · częstość max 13,77 % / śr. 3,08 % · pokrycie max 100,00 % / śr. 42,93 % · eksploatacja 7,15 · wpływ 4,32 · wystąpienia 1 404 249 · CVE 62 445
Na WordPressieXSS to najczęstszy typ podatności publikowanych dla wtyczek WordPressa, SQL injection jeden z najgroźniejszych (zapytania sklejane zamiast $wpdb->prepare). Skutek widać później jako zainfekowaną stronę: obcy skrypt w szablonie, spam SEO, przekierowania.
Co widzi skanerskutki vuln_match · infection_checkSkaner nie atakuje stron klientów, więc nie próbuje wstrzyknięć. Widzi dwie rzeczy: znane podatności typu XSS/SQLi w zainstalowanych wersjach (vuln_match, przez A03) i skutek udanego wstrzyknięcia w HTML (infection_check: obce skrypty, eval(atob), ukryte ramki, spam SEO).
TAB. 7A06:2025 · Niebezpieczny projektInsecure Design
Czym jestBłąd w samym pomyśle, nie w wykonaniu: brakuje zabezpieczenia, którego nikt nie zaprojektował. Nawet bezbłędna implementacja złego projektu jest podatna.
Jak wygląda01 Odzyskiwanie konta przez „pytanie pomocnicze”.02 Rezerwacja bez limitu i bez zaliczki — jeden bot wykupuje całą salę.03 Brak ochrony przed botami przy premierze produktu.04 Brak rozdziału danych między klientami w systemie wielodostępnym.05 Założenia procesu (kolejność kroków, limity) nigdzie niesprawdzane.
Jak zapobiegać01 Bezpieczeństwo od pierwszego dnia projektu, nie na koniec.02 Modelowanie zagrożeń dla logowania, kontroli dostępu i kluczowych procesów.03 Biblioteka sprawdzonych wzorców i komponentów.04 Wymagania bezpieczeństwa wpisane w historie użytkownika.05 Testy jednostkowe i integracyjne, które sprawdzają odporność na zagrożenia z modelu.
Charakterystyczne CWECWE-269 Improper Privilege ManagementCWE-434 Unrestricted Upload of File with Dangerous TypeCWE-501 Trust Boundary ViolationCWE-522 Insufficiently Protected CredentialsCWE-256 Unprotected Storage of Credentials
LiczbyCWE 39 · częstość max 22,18 % / śr. 1,86 % · pokrycie max 88,76 % / śr. 35,18 % · eksploatacja 6,96 · wpływ 4,05 · wystąpienia 729 882 · CVE 7647
Na WordPressieFormularz, który przyjmuje dowolny plik do katalogu uploads; sklep bez limitu kuponów; strona, na której każdy redaktor jest administratorem, „bo tak prościej”. To decyzje wdrożeniowe i biznesowe — żaden skan wersji ich nie znajdzie.
Co widzi skanernie widać Z zewnątrz nie widać. Projekt ocenia się na przeglądzie: rozmowa o procesach, role użytkowników, przegląd formularzy i integracji. Otwarta rejestracja (open_registration) bywa objawem złej decyzji projektowej, ale sama nie jest dowodem.
TAB. 8A07:2025 · Błędy uwierzytelnianiaAuthentication Failures
Czym jestSystem uznaje kogoś za prawowitego użytkownika, choć nim nie jest — przez zgadnięte hasło, wykradzione dane logowania albo źle zarządzaną sesję.
Jak wygląda01 Credential stuffing — logowanie listami haseł z cudzych wycieków.02 Password spraying z przewidywalnymi hasłami (Zima2025 → Zima2026).03 Brak limitu prób logowania — brute force bez przeszkód.04 Domyślne dane typu admin/admin.05 Brak albo słabe MFA; sesja ważna po wylogowaniu.
Jak zapobiegać01 Uwierzytelnianie wieloskładnikowe tam, gdzie to możliwe.02 Sprawdzanie nowych haseł z listami wyciekłych i słabych haseł.03 Limit nieudanych logowań i ten sam komunikat dla złego loginu i złego hasła.04 Zarządzanie sesją po stronie serwera, losowe identyfikatory o wysokiej entropii.05 Polityka haseł według NIST 800-63b — bez wymuszonej okresowej zmiany.
Charakterystyczne CWECWE-287 Improper AuthenticationCWE-307 Improper Restriction of Excessive Authentication AttemptsCWE-798 Use of Hard-coded CredentialsCWE-384 Session FixationCWE-259 Use of Hard-coded Password
LiczbyCWE 36 · częstość max 15,80 % / śr. 2,92 % · pokrycie max 100,00 % / śr. 37,14 % · eksploatacja 7,69 · wpływ 4,44 · wystąpienia 1 120 673 · CVE 7147
Na WordPressieStały ruch na wp-login.php i xmlrpc.php od botów zgadujących hasła; XML-RPC pozwala sprawdzić setki haseł jednym żądaniem (system.multicall). Loginy są często znane, bo WordPress je ujawnia (A01). Brak 2FA dla administratorów to norma na stronach firmowych.
Co widzi skanerczęściowo exposureWidzi to, co ułatwia atak: otwarty XML-RPC (exposure_xmlrpc) i ujawnione loginy (exposure_users_enum, exposure_author_enum) — połowę danych potrzebnych do zgadywania. Nie widzi siły haseł, MFA ani limitów logowania: sprawdzenie ich z zewnątrz byłoby atakiem.
TAB. 9A08:2025 · Naruszenie integralności oprogramowania lub danychSoftware or Data Integrity Failures
Czym jestSystem przyjmuje kod albo dane jako zaufane, nie sprawdzając, skąd pochodzą i czy ktoś ich po drodze nie zmienił.
Jak wygląda01 Aktualizacje instalowane bez weryfikacji podpisu.02 Wtyczki i skrypty z niesprawdzonych repozytoriów i CDN-ów.03 Pipeline CI/CD, który pobiera kod bez kontroli integralności.04 Deserializacja obiektów od klienta bez walidacji.05 Funkcje na domenie łudząco podobnej, z tym samym ciasteczkiem logowania.
Jak zapobiegać01 Podpisy cyfrowe albo sumy kontrolne dla kodu i aktualizacji.02 Zależności tylko z zaufanych repozytoriów, najlepiej własnego, sprawdzonego lustra.03 Obowiązkowy przegląd każdej zmiany w pipeline.04 Rozdział uprawnień i kontrola dostępu w CI/CD.05 Odrzucanie niepodpisanych danych serializowanych.
Charakterystyczne CWECWE-829 Inclusion of Functionality from Untrusted Control SphereCWE-502 Deserialization of Untrusted DataCWE-494 Download of Code Without Integrity CheckCWE-830 Inclusion of Web Functionality from an Untrusted Source
LiczbyCWE 14 · częstość max 8,98 % / śr. 2,75 % · pokrycie max 78,52 % / śr. 45,49 % · eksploatacja 7,11 · wpływ 4,79 · wystąpienia 501 327 · CVE 3331
Na WordPressiePHP Object Injection (deserializacja przez unserialize) to częsty typ krytycznych CVE we wtyczkach. Do tego skrypty ładowane z obcych domen bez SRI i kampanie, które podmieniają plik JS na samej stronie (SocGholish, EtherHiding). Zmiana serwerów nazw albo MX bez wiedzy właściciela to naruszenie integralności na poziomie domeny.
Co widzi skanerskutki infection_check · dns_integrity_check · ip_changeWidzi skutki: infection_check wykrywa obce i podmienione skrypty (infection_foreign_script, infection_same_origin_loader, infection_socgholish_gateway, infection_etherhiding), dns_integrity_check — dryf NS, MX, SPF i DMARC względem linii bazowej, ip_change — zmianę adresów. Nie widzi, czy aktualizacje i pipeline są podpisane.
TAB. 10A09:2025 · Braki w logowaniu i alarmowaniuSecurity Logging and Alerting Failures
Czym jestBez logów nie da się wykryć ataku, a bez alarmu nie da się na niego szybko zareagować. Zmiana nazwy mówi wprost: log, którego nikt nie czyta, nie chroni.
Jak wygląda01 Logowane tylko udane logowania, nieudane giną.02 Logi tylko na tym samym serwerze — włamywacz kasuje je razem ze śladami.03 Dane osobowe w logach.04 Progi alarmów tak czułe, że zespół przestaje na nie patrzeć.05 Skan podatności przechodzi przez system i nie wywołuje żadnego alarmu.
Jak zapobiegać01 Logowanie nieudanych logowań, odmów dostępu i błędów walidacji z kontekstem.02 Poprawne kodowanie wpisów — log też bywa celem wstrzyknięcia.03 Ślad audytowy tylko do dopisywania, z kontrolą integralności.04 Plan reagowania na incydent (np. według NIST 800-61r2).05 Reguły alarmów oddzielające zdarzenia krytyczne od rutyny.
Charakterystyczne CWECWE-778 Insufficient LoggingCWE-117 Improper Output Neutralization for LogsCWE-532 Insertion of Sensitive Information into Log FileCWE-223 Omission of Security-relevant Information
LiczbyCWE 5 · częstość max 11,33 % / śr. 3,91 % · pokrycie max 85,96 % / śr. 46,48 % · eksploatacja 7,19 · wpływ 2,65 · wystąpienia 260 288 · CVE 723
Na WordPressieTypowa strona firmowa nie ma żadnego logu zdarzeń bezpieczeństwa poza logami serwera u hostingodawcy, których nikt nie przegląda. Właściciel dowiaduje się o włamaniu od klienta albo od Google.
Co widzi skanernie widać Z zewnątrz nie widać, czy strona loguje. LAB247 działa jako zewnętrzna warstwa alarmu — skan, który znajdzie infekcję albo wystawiony plik, zakłada zgłoszenie — ale to nie zastępuje logów na serwerze: widzimy skutek, a nie przebieg ataku.
TAB. 11A10:2025 · Złe obsługiwanie sytuacji wyjątkowychMishandling of Exceptional Conditions
Czym jestProgram nie przewiduje, nie wykrywa albo źle reaguje na sytuację nietypową — i wtedy się wysypuje, ujawnia wnętrze albo zostaje w stanie, którego nikt nie planował.
Jak wygląda01 Obsługa wyjątku nie zwalnia zasobów — kilka złośliwych żądań wyczerpuje serwer.02 Komunikat błędu pokazuje ścieżki, zapytania i wersje.03 Wieloetapowa transakcja przerwana w połowie bez wycofania.04 Nieobsłużony wyjątek zostawia system w nieprzewidzianym stanie.05 „Fail open” — przy błędzie kontrola dostępu przepuszcza zamiast blokować.
Jak zapobiegać01 Łapanie wyjątków tam, gdzie powstają, z sensowną odpowiedzią, logiem i alarmem.02 Bezpieczna porażka (fail closed): błąd = wycofanie całej operacji.03 Globalny handler wyjątków jako siatka bezpieczeństwa.04 Limity żądań i zasobów, żeby sytuacja wyjątkowa nie stała się normą.05 Obserwowanie serii błędów — powtarzalny błąd bywa atakiem.
Charakterystyczne CWECWE-703 Improper Check or Handling of Exceptional ConditionsCWE-209 Error Message Containing Sensitive InformationCWE-636 Not Failing Securely (Failing Open)CWE-476 NULL Pointer Dereference
LiczbyCWE 24 · częstość max 20,67 % / śr. 2,95 % · pokrycie max 100,00 % / śr. 37,95 % · eksploatacja 7,11 · wpływ 3,81 · wystąpienia 769 581 · CVE 3416
Na WordPressieWłączony WP_DEBUG_DISPLAY na produkcji wypisuje ostrzeżenia PHP ze ścieżkami serwera; wtyczka, która po aktualizacji PHP rzuca błąd krytyczny, kładzie całą stronę („Na stronie wystąpił błąd krytyczny”).
Co widzi skanerskutki http · exposureWidzi skutki: http łapie odpowiedzi 5xx, exposure — wystawiony debug.log i phpinfo (ujawnianie wnętrza, CWE-209). Nie widzi, jak kod obsługuje błędy, dopóki błąd nie wyjdzie na zewnątrz.
TAB. 12Testy skanera LAB247 a kategorie OWASPkategoria główna pierwsza
TestKategorieCo widzi
exposureA02 · A01 · A07 · A1025 sond wystawionych plików i endpointów: konfiguracja, loginy, XML-RPC, logi błędów.
security_headersA02 · A04Sześć nagłówków ochronnych; brak HSTS to także słabość transportu.
wp_fingerprintA03Wersje rdzenia, wtyczek, motywu i PHP ustalone z zewnątrz — wejście do dopasowania CVE.
vuln_match · version_summary · wpscanA03 · A05 · A01Znane CVE w zainstalowanych wersjach; typ CVE (XSS, SQLi, brak autoryzacji) wskazuje kategorię.
ssl · redirect · mixed_contentA04Certyfikat, wymuszenie https://, zasoby po http://.
infection_check · safebrowsingA08 · A05Skutek: obcy albo podmieniony kod na stronie, oznaczenie przez Google.
dns_integrity_check · ip_changeA08Zmiana NS, MX, SPF, DMARC i adresów bez wiedzy właściciela.
httpA10Odpowiedzi 5xx — objaw nieobsłużonego błędu.

Test przy kategorii nie znaczy, że kategoria jest sprawdzona. Znaczy, że test widzi jej wycinek — zwykle objaw albo skutek. Brak znaleziska w teście nie jest dowodem, że aplikacja jest wolna od całej kategorii.

TAB. 13Czego zewnętrzny skan nie widzinazwane, nie ukryte
A06 Niebezpieczny projektTo decyzje, nie pliki i wersje. Ocenia się je na przeglądzie procesów i ról, nie skanem.
A09 Logowanie i alarmowanieLogi są na serwerze. Z zewnątrz można tylko stwierdzić, że skutek ataku przeszedł niezauważony.
A01 i A07 — uprawnienia i hasłaSprawdzenie, czy wtyczka pilnuje uprawnień albo czy hasło jest słabe, wymaga zalogowania albo próby ataku. Nie robimy ani jednego, ani drugiego na stronach klientów.
A05 — próby wstrzyknięćSkaner nie wysyła ładunków ataku. Widzimy znane CVE w wersjach i skutki udanego wstrzyknięcia.
Kod własny i konfiguracja serweraMotyw pisany na zamówienie i ustawienia hostingu nie mają numeru wersji w bazie CVE ani śladu w odpowiedzi HTTP.

Te luki zamyka przegląd z dostępem: kod wtyczek i motywu, konfiguracja serwera, role użytkowników, logi. Skan z zewnątrz jest czujką, nie audytem zgodności z OWASP.

TAB. 14Jak czytać liczby i skąd się wzięłymetodologia OWASP Top 10:2025
CWE
Liczba słabości z katalogu CWE przypisanych do kategorii. Kategoria to grupa CWE o wspólnej przyczynie, średnio 25 na kategorię.
Częstość
Odsetek aplikacji z danym CWE spośród aplikacji przebadanych pod jego kątem; max — najczęstsze CWE kategorii, śr. — średnia po jej CWE.
Pokrycie
Odsetek aplikacji przebadanych pod kątem danego CWE — mówi, jak dobrze dane pokrywają kategorię.
Eksploatacja · wpływ
Średnie ważone podwyników CVSS (exploitability i impact) z CVE przypisanych do CWE kategorii — im wyżej, tym łatwiej wykorzystać i tym większa szkoda.
Wystąpienia · CVE
Łączna liczba aplikacji z trafieniem i liczba CVE przypisanych do CWE kategorii.

Edycja 2025 przeanalizowała 589 CWE (w 2021 około 400) z danych o 2,8 mln aplikacji od 13 organizacji. 8 kategorii wybrano z danych, 2 z ankiety społeczności — dane z testów zawsze mówią o przeszłości, ankieta łapie to, czego narzędzia jeszcze nie umieją mierzyć. Kategorie nazwano według przyczyny, nie objawu: „błędy kryptograficzne” zamiast „wycieku danych wrażliwych”, bo przyczynę da się naprawić, a objaw tylko zauważyć.

Blog 24/7
26.09Fałszywe SMS-y o opłacie parkingowej wyłudzają dane karty, ostrzega CERT Polskadobreprogramy.pl26.09Grupa UNC6240 omija filtry WAF i masowo atakuje krytyczną lukę bez poprawkithehackernews.com26.09Kiteworks zaleca klientom wyłączenie serwerów na sześć godzin w sobotę 26 wrześniableepingcomputer.com25.09Elementor 4.3.0 i 4.3.1: jeden link zakłada napastnikowi konto administratorapatchstack.com25.09Atak na system Medyc: sprawcy twierdzą, że mają dane 5 mln pacjentów i 8 mln zdjęćzaufanatrzeciastrona.pl25.09Fałszywe aplikacje płacowe instalują ScreenConnect na komputerach działu płachelpnetsecurity.com24.09Zdrowit S.A. potwierdza cyberatak, przestępcy opublikowali plik 90 GBtelepolis.pl24.09Fałszywa „aktualizacja PDF” z Facebooka prowadziła do aplikacji Messenger Pro w Googleinstalki.pl24.09Fałszywa weryfikacja Cloudflare na przejętych stronach firm instaluje stealer Psychedelicthehackernews.com24.09Luka prompt injection w aplikacji agentowej AI pozwalała wykonać kod przez mailadarkreading.com