Web API Pentesting
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
API Pentesting Methodology Summary
Pentesting von APIs erfordert einen strukturierten Ansatz zur Aufdeckung von Schwachstellen. Dieser Leitfaden fasst eine umfassende Methodik zusammen, die praktische Techniken und Werkzeuge betont.
Understanding API Types
- SOAP/XML Web Services: Nutzen das WSDL-Format für die Dokumentation, typischerweise zu finden unter
?wsdl
-Pfaden. Werkzeuge wie SOAPUI und WSDLer (Burp Suite Extension) sind entscheidend für das Parsen und Generieren von Anfragen. Beispielhafte Dokumentation ist zugänglich unter DNE Online. - REST APIs (JSON): Dokumentation kommt oft in WADL-Dateien, jedoch bieten Werkzeuge wie Swagger UI eine benutzerfreundlichere Schnittstelle für die Interaktion. Postman ist ein wertvolles Werkzeug zum Erstellen und Verwalten von Beispielanfragen.
- GraphQL: Eine Abfragesprache für APIs, die eine vollständige und verständliche Beschreibung der Daten in Ihrer API bietet.
Practice Labs
- VAmPI: Eine absichtlich verwundbare API für praktische Übungen, die die OWASP Top 10 API-Schwachstellen abdeckt.
Effective Tricks for API Pentesting
- SOAP/XML Vulnerabilities: Untersuchen Sie XXE-Schwachstellen, obwohl DTD-Deklarationen oft eingeschränkt sind. CDATA-Tags können die Payload-Einfügung ermöglichen, wenn das XML gültig bleibt.
- Privilege Escalation: Testen Sie Endpunkte mit unterschiedlichen Berechtigungsstufen, um unbefugte Zugriffs Möglichkeiten zu identifizieren.
- CORS Misconfigurations: Untersuchen Sie CORS-Einstellungen auf potenzielle Ausnutzbarkeit durch CSRF-Angriffe aus authentifizierten Sitzungen.
- Endpoint Discovery: Nutzen Sie API-Muster, um versteckte Endpunkte zu entdecken. Werkzeuge wie Fuzzer können diesen Prozess automatisieren.
- Parameter Tampering: Experimentieren Sie mit dem Hinzufügen oder Ersetzen von Parametern in Anfragen, um auf unbefugte Daten oder Funktionen zuzugreifen.
- HTTP Method Testing: Variieren Sie die Anfragemethoden (GET, POST, PUT, DELETE, PATCH), um unerwartete Verhaltensweisen oder Informationsoffenlegungen aufzudecken.
- Content-Type Manipulation: Wechseln Sie zwischen verschiedenen Inhaltstypen (x-www-form-urlencoded, application/xml, application/json), um auf Parsing-Probleme oder Schwachstellen zu testen.
- Advanced Parameter Techniques: Testen Sie mit unerwarteten Datentypen in JSON-Payloads oder experimentieren Sie mit XML-Daten für XXE-Injektionen. Versuchen Sie auch Parameter-Verschmutzung und Wildcard-Zeichen für umfassendere Tests.
- Version Testing: Ältere API-Versionen könnten anfälliger für Angriffe sein. Überprüfen Sie immer mehrere API-Versionen und testen Sie gegen diese.
Tools and Resources for API Pentesting
- kiterunner: Hervorragend geeignet zur Entdeckung von API-Endpunkten. Verwenden Sie es, um Pfade und Parameter gegen Ziel-APIs zu scannen und zu brute-forcen.
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 ist ein Befehlszeilenwerkzeug, das entwickelt wurde, um bei der Überprüfung von exponierten Swagger/OpenAPI-Definitionsdateien zu helfen, indem die zugehörigen API-Endpunkte auf schwache Authentifizierung überprüft werden. Es bietet auch Befehlsvorlagen für manuelle Schwachstellentests.
- Zusätzliche Werkzeuge wie automatic-api-attack-tool, Astra und restler-fuzzer bieten maßgeschneiderte Funktionen für API-Sicherheitstests, die von Angriffssimulation bis hin zu Fuzzing und Schwachstellenscanning reichen.
- Cherrybomb: Es ist ein API-Sicherheitswerkzeug, das Ihre API basierend auf einer OAS-Datei prüft (das Werkzeug ist in Rust geschrieben).
Lern- und Übungsressourcen
- OWASP API Security Top 10: Wichtige Lektüre zum Verständnis häufiger API-Schwachstellen (OWASP Top 10).
- API-Sicherheits-Checkliste: Eine umfassende Checkliste zur Sicherung von APIs (GitHub-Link).
- Logger++ Filter: Zur Suche nach API-Schwachstellen bietet Logger++ nützliche Filter (GitHub-Link).
- API-Endpunktliste: Eine kuratierte Liste potenzieller API-Endpunkte zu Testzwecken (GitHub-Gist).
Referenzen
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.