🧪 3.3.2 – Metody testowania podatności
🎯 Cel sekcji
Poznać skuteczne techniki wykrywania podatności typu Injection, w szczególności SQL Injection, Command Injection i NoSQL Injection – zarówno manualnie, jak i za pomocą narzędzi.
🧪 Test 1: SQL Injection (ręczny)
Kroki:
- Zidentyfikuj punkt wejścia: formularz logowania, pole wyszukiwania, parametr w URL.
- Wstrzyknij klasyczne payloady:
' OR '1'='1
admin' --
" OR 1=1 --
- Obserwuj:
- Czy logowanie się udało?
- Czy pojawił się błąd SQL?
- Czy można wyciągnąć dane?
🧪 Test 2: Command Injection
Kroki:
- Zidentyfikuj funkcję wykonującą polecenia systemowe (np. ping, traceroute, zip upload).
- Wstrzyknij payload:
127.0.0.1; whoami
lub
127.0.0.1 && id
- Sprawdź, czy wynik polecenia pojawia się w odpowiedzi.
🧪 Test 3: NoSQL Injection (np. MongoDB)
Kroki:
- Zlokalizuj API lub formularz korzystający z MongoDB.
- Wstrzyknij:
{ "username": { "$ne": null }, "password": { "$ne": null } }
lub jako URL encoded:
username[$ne]=1&password[$ne]=1
➡️ Jeśli logowanie się uda – podatność potwierdzona.
🧪 Test 4: LDAP Injection
*)(uid=*))(|(uid=*
➡️ Wstaw do formularza logowania i sprawdź reakcję backendu.
🧰 Narzędzia pomocnicze
- Burp Suite (Repeater, Intruder, Logger++),
- OWASP ZAP,
- sqlmap (automatyczne wykrywanie SQLi):
sqlmap -u "http://example.com/item?id=1" --batch --banner
- NoSQLMap (dla MongoDB),
- Commix (Command Injection Exploiter).
🧠 Wskazówki
- Szukaj parametrów, które wpływają na logikę zapytania.
- Wstrzykuj dane krok po kroku i obserwuj reakcję aplikacji.
- Używaj proxy (Burp/ZAP), by powtarzać i modyfikować żądania.
W następnym kroku: 3.3.3 – Weryfikacja konfiguracji aplikacji i serwera