Testowanie uwierzytelniania i sesji
Przetestują Państwo siłowe łamanie logowania, session fixation, słabości JWT oraz niezabezpieczone tokeny remember-me.
Testowanie uwierzytelniania i sesji to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Zakres testowania uwierzytelniania
Testowanie uwierzytelniania obejmuje: brute force logowania, credential stuffing, słabości zarządzania sesją, podatności JWT, niezabezpieczone tokeny remember-me oraz błędy resetowania haseł. Problemy te często prowadzą do pełnego przejęcia konta.
Enumeracja nazw użytkowników
Różne komunikaty o błędach dla nieprawidłowej nazwy użytkownika i nieprawidłowego hasła ujawniają prawidłowe nazwy użytkowników. Należy szukać różnic w czasie odpowiedzi, treści komunikatów, kodach statusu HTTP oraz adresach URL przekierowań.
# Test login with:
# Valid user, wrong pass → "Incorrect password"
# Invalid user → "User not found"
# This confirms valid usernames!
# Time-based: longer response for valid users
# (bcrypt hash computed only for valid users)Brute force logowania za pomocą Burp Intruder
Do brute force logowania należy użyć Intruder z atakiem Sniper lub Pitchfork. Należy oznaczyć pole hasła jako pozycję payloadu, wczytać wordlistę i filtrować odpowiedzi według kodu statusu lub różnicy długości.
# In Burp Intruder:
# 1. Send login request to Intruder
# 2. Mark: username=admin&password=§PASS§
# 3. Attack type: Sniper
# 4. Payload: passwords.txt from SecLists
# 5. Filter: 302 redirects = successCredential Stuffing
Credential stuffing polega na używaniu par nazwa użytkownika:hasło z wyciekłych baz danych (Have I Been Pwned) przeciwko nowym celom. Jest skuteczny, ponieważ użytkownicy ponownie wykorzystują hasła w wielu usługach.
# Tools:
# Hydra for HTTP login forms
hydra -L users.txt -P passwords.txt \
192.168.1.100 http-post-form \
"/login:user=^USER^&pass=^PASS^:Invalid"Analiza tokenów sesji
Należy przechwycić tokeny sesji i przeanalizować ich przewidywalność (sekwencyjne identyfikatory), długość (krótkie są łatwiejsze do odgadnięcia), kodowanie (zdekodować Base64, aby zobaczyć strukturę) oraz entropię (przeanalizować za pomocą Burp Sequencer).
# Burp Sequencer:
# Proxy > HTTP History
# Right-click login response
# Send to Sequencer
# Start live capture → AnalyzeSession Fixation
Session fixation występuje, gdy serwer nie zmienia identyfikatora sesji po zalogowaniu. Należy zapisać identyfikator sesji sprzed zalogowania i sprawdzić, czy po uwierzytelnieniu pozostaje taki sam.
Testowanie JWT
JSON Web Tokens przenoszą informacje o uprawnieniach uwierzytelniania. Należy testować: pomylenie algorytmów (alg:none), brute force słabego sekretu oraz injection w nagłówku. jwt.io dekoduje tokeny JWT na potrzeby analizy.
# Decode JWT
echo "eyJ..." | base64 -d
# None algorithm attack:
# Modify header: {"alg":"none"}
# Remove signature
# Encode and submit
# Brute force HS256 secret:
john --format=HMAC-SHA256 token.txtBłędy resetowania haseł
Typowe błędy resetowania to: możliwe do odgadnięcia tokeny resetowania (krótkie lub sekwencyjne), injection w nagłówku Host (token wysyłany do domeny atakującego), ponowne użycie tokenu (ten sam token jest wielokrotnie ważny) oraz brak terminu wygaśnięcia.
# Test host header injection:
# Modify Host: header in reset request:
Host: attacker.com
# If token arrives at attacker.com = vulnerability
# Test token entropy:
# Collect multiple tokens
# Check for patterns or short lengthBezpieczeństwo tokenów remember-me
Tokeny remember-me powinny być: kryptograficznie losowe, długie (co najmniej 128 bitów), przechowywane po stronie serwera w postaci skrótów, jednorazowe i powiązane z kontem użytkownika. Należy testować ich przewidywalność i możliwość ponownego użycia.
Obchodzenie uwierzytelniania wieloskładnikowego
Typowe sposoby obejścia MFA to: manipulowanie odpowiedzią (zmiana wyniku z niepowodzenia na sukces), bezpośredni dostęp do adresu URL po częściowym uwierzytelnieniu, brute force krótkich kodów OTP bez ograniczenia częstotliwości oraz SIM swapping (metoda socjotechniczna, a nie techniczna).
Testowanie blokady konta
Należy sprawdzić, czy wielokrotne nieudane logowania powodują blokadę konta. Brak blokady oznacza ryzyko brute force. Zbyt agresywna blokada oznacza ryzyko odmowy usługi. Należy sprawdzić, czy blokada znika po określonym czasie, czy wymaga działania administratora.
Szybki sprawdzian
Jaki atak na JWT zmienia pole algorytmu na "none", aby ominąć weryfikację podpisu?
Podsumowanie: testowanie uwierzytelniania i sesji
Testowanie uwierzytelniania obejmuje cały łańcuch — od początkowego logowania po zarządzanie sesją. Należy szukać enumeracji nazw użytkowników, braku blokady konta, przewidywalnych tokenów, pomylenia algorytmów JWT, injection podczas resetowania haseł oraz możliwości obejścia MFA. Pojedyncza słabość w tym łańcuchu może oznaczać pełne przejęcie dowolnego konta użytkownika.
Często zadawane pytania
Czy lekcja „Testowanie uwierzytelniania i sesji” jest bezpłatna?
Tak — pełny tekst „Testowanie uwierzytelniania i sesji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Testowanie uwierzytelniania i sesji”?
Przetestują Państwo siłowe łamanie logowania, session fixation, słabości JWT oraz niezabezpieczone tokeny remember-me. Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Testowanie uwierzytelniania i sesji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Proxy Burp Suite i przechwytywanie żądań
- Testowanie podatności typu injection
- Testowanie uwierzytelniania i sesji
- Podatności związane z przesyłaniem plików i SSRF