Web API Pentesting
Reading time: 4 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Podsumowanie Metodologii Pentestingu API
Pentesting API wymaga strukturalnego podejścia do odkrywania luk. Ten przewodnik zawiera kompleksową metodologię, podkreślając praktyczne techniki i narzędzia.
Zrozumienie Typów API
- SOAP/XML Web Services: Wykorzystują format WSDL do dokumentacji, zazwyczaj dostępny pod ścieżkami
?wsdl
. Narzędzia takie jak SOAPUI i WSDLer (rozszerzenie Burp Suite) są niezbędne do analizowania i generowania żądań. Przykładowa dokumentacja jest dostępna pod adresem DNE Online. - REST APIs (JSON): Dokumentacja często występuje w plikach WADL, jednak narzędzia takie jak Swagger UI oferują bardziej przyjazny interfejs do interakcji. Postman to cenne narzędzie do tworzenia i zarządzania przykładowymi żądaniami.
- GraphQL: Język zapytań dla API oferujący pełny i zrozumiały opis danych w Twoim API.
Laboratoria Praktyczne
- VAmPI: Celowo podatne API do praktyki, obejmujące 10 najważniejszych luk w API według OWASP.
Skuteczne Sztuczki do Pentestingu API
- Vulnerabilities SOAP/XML: Zbadaj luki XXE, chociaż deklaracje DTD są często ograniczone. Tag CDATA może umożliwić wstawienie ładunku, jeśli XML pozostaje ważny.
- Escalacja Uprawnień: Testuj punkty końcowe z różnymi poziomami uprawnień, aby zidentyfikować możliwości nieautoryzowanego dostępu.
- Błędy w Konfiguracji CORS: Zbadaj ustawienia CORS pod kątem potencjalnej możliwości wykorzystania przez ataki CSRF z sesji uwierzytelnionych.
- Odkrywanie Punktów Końcowych: Wykorzystaj wzorce API do odkrywania ukrytych punktów końcowych. Narzędzia takie jak fuzzery mogą zautomatyzować ten proces.
- Manipulacja Parametrami: Eksperymentuj z dodawaniem lub zastępowaniem parametrów w żądaniach, aby uzyskać dostęp do nieautoryzowanych danych lub funkcji.
- Testowanie Metod HTTP: Zmieniaj metody żądań (GET, POST, PUT, DELETE, PATCH), aby odkryć nieoczekiwane zachowania lub ujawnienia informacji.
- Manipulacja Typem Zawartości: Przełączaj się między różnymi typami zawartości (x-www-form-urlencoded, application/xml, application/json), aby testować problemy z analizą lub luki.
- Zaawansowane Techniki Parametrów: Testuj z nieoczekiwanymi typami danych w ładunkach JSON lub baw się danymi XML w celu wstrzyknięć XXE. Spróbuj również zanieczyszczenia parametrów i znaków wieloznacznych dla szerszego testowania.
- Testowanie Wersji: Starsze wersje API mogą być bardziej podatne na ataki. Zawsze sprawdzaj i testuj przeciwko wielu wersjom API.
Narzędzia i Zasoby do Pentestingu API
- kiterunner: Doskonałe do odkrywania punktów końcowych API. Użyj go do skanowania i brutalnego wymuszania ścieżek i parametrów przeciwko docelowym API.
bash
kr scan https://domain.com/api/ -w routes-large.kite -x 20
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
- https://github.com/BishopFox/sj: sj to narzędzie wiersza poleceń zaprojektowane do wspomagania audytu ujawnionych plików definicji Swagger/OpenAPI poprzez sprawdzanie powiązanych punktów końcowych API pod kątem słabej autoryzacji. Oferuje również szablony poleceń do ręcznego testowania podatności.
- Dodatkowe narzędzia, takie jak automatic-api-attack-tool, Astra i restler-fuzzer, oferują dostosowane funkcjonalności do testowania bezpieczeństwa API, od symulacji ataków po fuzzing i skanowanie podatności.
- Cherrybomb: To narzędzie do zabezpieczania API, które audytuje Twoje API na podstawie pliku OAS (narzędzie napisane w rust).
Zasoby do nauki i praktyki
- OWASP API Security Top 10: Kluczowa lektura dla zrozumienia powszechnych podatności API (OWASP Top 10).
- API Security Checklist: Kompletna lista kontrolna zabezpieczania API (GitHub link).
- Logger++ Filters: Do poszukiwania podatności API, Logger++ oferuje przydatne filtry (GitHub link).
- API Endpoints List: Starannie wyselekcjonowana lista potencjalnych punktów końcowych API do celów testowych (GitHub gist).
Referencje
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.