OWASP Top 10 — zagrożenia, które każdy tester powinien znać

Coraz częściej słyszę, że testerzy nie powinni już skupiać się tylko na funkcjonalności, a bezpieczeństwo aplikacji staje się po prostu kolejnym wymiarem jakości. I w pełni się z tym zgadzam. Użytkownik końcowy nie interesuje się tym, kto zawalił — deweloper, tester czy architekt — jeśli coś wycieknie albo ktoś przejmie jego konto, to w oczach użytkownika aplikacja jest po prostu dziurawa.

Dlatego OWASP Top 10 to coś, co każdy tester powinien znać na pamięć. To zestaw najczęstszych, najgroźniejszych podatności w aplikacjach webowych, które regularnie aktualizuje społeczność security. I choć nie każdy musi być pentesterem, warto umieć spojrzeć na aplikację również pod kątem bezpieczeństwa — a OWASP Top 10 daje do tego świetny punkt wyjścia.

Poniżej zebrałem dla Was nie tylko opis każdej pozycji, ale też moje własne praktyczne wskazówki, które sam wykorzystuję w codziennej pracy. Jeśli myślisz poważnie o roli testera w 2025 roku, to lektura obowiązkowa

owasp top 10

1️⃣ Broken Access Control

O co chodzi?
Chodzi o sytuacje, w których użytkownik może zrobić w aplikacji coś, do czego absolutnie nie powinien mieć prawa. Klasyka to dostęp do danych innego użytkownika po podmienieniu ID w URL.

Jak to wyłapać?

  • warto ręcznie próbować podmieniać identyfikatory zasobów (np. ID zamówień)

  • testować różne role użytkowników — czy zwykły user może wywołać endpointy admina

  • w API warto pokusić się o automatyczne testy autoryzacji, np. wysyłając token z ograniczonymi uprawnieniami

Mój protip:
Zawsze próbuję przetestować, co się stanie, jeśli w żądaniu ręcznie wpiszę rolę wyższą niż moja — zaskakująco często działa.


2️⃣ Cryptographic Failures

O co chodzi?
To ogólnie wszystkie problemy z szyfrowaniem: brak HTTPS, słabe algorytmy, klucze w kodzie, hasła w plain text — znacie to na pewno.

Jak to wyłapać?

  • czy aplikacja wymusza HTTPS

  • czy nie przesyła loginów w otwartym tekście

  • czy w bazie nie ma hasła w jawnej postaci

Mój protip:
Podczas testów zawsze próbuję wymusić downgrade na HTTP — wiele aplikacji tego nie blokuje, a to prosta droga do przechwycenia danych.


3️⃣ Injection

O co chodzi?
To typ podatności, gdzie atakujący może „wstrzyknąć” do aplikacji niechciane zapytania — np. SQL, NoSQL, czy polecenia systemowe.

Jak to wyłapać?

  • używam klasycznych payloadów (np. ' OR 1=1 --)

  • staram się testować nie tylko formularze, ale też parametry w API, nagłówki

  • obserwuję komunikaty błędów — czasem same w sobie zdradzają za dużo

Mój protip:
Injection w JSON? Tak, to możliwe — nie ograniczaj się tylko do SQL, bo API REST lub GraphQL też mogą być podatne.


4️⃣ Insecure Design

O co chodzi?
Tu problem pojawia się już na etapie projektowania — funkcjonalność niby działa, ale nikt nie przewidział podstawowych scenariuszy bezpieczeństwa.

Jak to wyłapać?

  • zadawać pytania typu „a co jeśli ktoś spróbuje obejść ten flow?”

  • testować scenariusze nietypowe, np. cofnięcie się w przeglądarce, wygaśnięte tokeny

  • patrzeć krytycznie na wymagania

Mój protip:
Lubię w testach sprawdzić, co się stanie, gdy użytkownik zmieni hasło — czy stare sesje nadal działają? Zaskakująco często tak.


5️⃣ Security Misconfiguration

O co chodzi?
To wszelkie złe ustawienia — frameworku, serwera, samej aplikacji — które otwierają drzwi atakującemu.

Jak to wyłapać?

  • sprawdzam nagłówki bezpieczeństwa

  • patrzę na komunikaty błędów — nie powinny pokazywać stack trace

  • zaglądam też do środowisk stagingowych, bo tam często deweloperzy zostawiają „otwarte wrota”

Mój protip:
Poproś czasem DevOpsa o wspólny przegląd konfiguracji — testerzy rzadko to robią, a to kopalnia wiedzy.


6️⃣ Vulnerable and Outdated Components

O co chodzi?
Używamy zależności, bibliotek, frameworków — a one też mogą mieć podatności. Jeśli ich nie aktualizujemy, to sami zapraszamy atakujących.

Jak to wyłapać?

  • pytam o listę paczek w projekcie

  • skanuję narzędziami typu OWASP Dependency-Check

  • sprawdzam, czy zespół ma w ogóle politykę aktualizacji

Mój protip:
Jeśli nie ma polityki aktualizacji — wpisz to w swoje ryzyka projektowe. Naprawdę warto.


7️⃣ Identification and Authentication Failures

O co chodzi?
Problemy z logowaniem i sesjami — za proste hasła, brak limitu prób, sesje nie wygasają.

Jak to wyłapać?

  • testuję logowanie na złe hasła kilkadziesiąt razy

  • sprawdzam MFA

  • patrzę na zarządzanie tokenami — czy wygasają po wylogowaniu

Mój protip:
Podmiana JWT na inny — wielu devów nie zabezpiecza tej ścieżki i można obejść autoryzację.


8️⃣ Software and Data Integrity Failures

O co chodzi?
Brak weryfikacji integralności aktualizacji czy komponentów — otwarta furtka do ataków supply chain.

Jak to wyłapać?

  • pytam o podpisy cyfrowe

  • weryfikuję sposób wdrażania kodu

  • patrzę, skąd projekt pobiera zależności

Mój protip:
Zajmij się też CI/CD — to coraz częstszy wektor ataku, a testerzy rzadko tam zaglądają.


9️⃣ Security Logging and Monitoring Failures

O co chodzi?
Brak logów lub ich kiepska jakość. Skutkuje tym, że atak może przejść niezauważony.

Jak to wyłapać?

  • sprawdzam, czy logowane są nieudane próby logowania

  • testuję alertowanie — czy ktoś w ogóle dostaje powiadomienia o incydencie

  • zaglądam, co trafia do logów — nie powinny być tam hasła czy tokeny

Mój protip:
Poproś, żeby pokazano Ci reguły alertów — często są napisane tylko „na papierze” i nie działają w praktyce.


🔟 Server-Side Request Forgery (SSRF)

O co chodzi?
Atakujący zmusza serwer, żeby wykonał żądanie do innego zasobu, np. zasobu wewnętrznego, do którego normalnie nie ma dostępu.

Jak to wyłapać?

  • testuję podając adresy lokalne (127.0.0.1, 169.254.*.*)

  • sprawdzam, czy aplikacja ma whitelistę dozwolonych hostów

  • próbuję skierować ruch do infrastruktury wewnętrznej

Mój protip:
Warto to automatyzować, ale ręczne próby są nieocenione — niektóre systemy reagują tylko na bardzo specyficzne formaty adresów.

Podsumowanie

Podsumowując — OWASP Top 10 to nie jest jakaś nudna lista do odhaczenia, tylko tak naprawdę fundament testerskiego podejścia do bezpieczeństwa. Jeśli nie masz tej wiedzy, to w 2025 roku możesz mieć problem na rynku — wymagania rosną i nic nie wskazuje, żeby to się miało zmienić.

Sam traktuję te dziesięć punktów jak checklistę, do której wracam regularnie. Dzięki temu nie zapominam o zagrożeniach, które mogą zniszczyć nawet najlepszą aplikację. I Tobie też to polecam. 

Dostępne szkolenia

pakiet premium