hacktricks/network-services-pentesting/pentesting-web/web-api-pentesting.md

91 lines
7.8 KiB
Markdown

# Web API Pentesting
<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um mithilfe der weltweit **fortschrittlichsten Community-Tools** einfach Workflows zu erstellen und zu **automatisieren**.\
Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## API Pentesting Methodik Zusammenfassung
Das Pentesting von APIs erfordert einen strukturierten Ansatz zur Aufdeckung von Schwachstellen. Dieser Leitfaden umfasst eine umfassende Methodik, die praktische Techniken und Tools hervorhebt.
### **Verständnis der API-Typen**
* **SOAP/XML-Webdienste**: Verwenden Sie das WSDL-Format für die Dokumentation, das normalerweise unter `?wsdl`-Pfaden zu finden ist. Tools wie **SOAPUI** und **WSDLer** (Burp Suite-Erweiterung) sind hilfreich zum Parsen und Generieren von Anfragen. Beispiel-Dokumentation ist unter [DNE Online](http://www.dneonline.com/calculator.asmx) zugänglich.
* **REST-APIs (JSON)**: Die Dokumentation erfolgt häufig in WADL-Dateien, aber Tools wie [Swagger UI](https://swagger.io/tools/swagger-ui/) bieten eine benutzerfreundlichere Oberfläche für die Interaktion. **Postman** ist ein wertvolles Tool zur Erstellung und Verwaltung von Beispielanfragen.
* **GraphQL**: Eine Abfragesprache für APIs, die eine vollständige und verständliche Beschreibung der Daten in Ihrer API bietet.
### **Praktische Übungslabore**
* [**VAmPI**](https://github.com/erev0s/VAmPI): Eine absichtlich verwundbare API für praktische Übungen, die die OWASP Top 10 API-Schwachstellen abdeckt.
### **Effektive Tricks für das API-Pentesting**
* **SOAP/XML-Schwachstellen**: Erforschen Sie XXE-Schwachstellen, obwohl DTD-Deklarationen oft eingeschränkt sind. CDATA-Tags können die Einfügung von Payloads ermöglichen, wenn das XML gültig bleibt.
* **Privilege Escalation**: Testen Sie Endpunkte mit unterschiedlichen Berechtigungsebenen, um unbefugte Zugriffsmöglichkeiten zu identifizieren.
* **CORS-Fehlkonfigurationen**: Untersuchen Sie CORS-Einstellungen auf mögliche Ausnutzbarkeit durch CSRF-Angriffe aus authentifizierten Sitzungen.
* **Endpunktentdeckung**: Nutzen Sie API-Muster, um versteckte Endpunkte zu entdecken. Tools wie Fuzzer können diesen Prozess automatisieren.
* **Parametermanipulation**: Experimentieren Sie mit dem Hinzufügen oder Ersetzen von Parametern in Anfragen, um auf nicht autorisierte Daten oder Funktionen zuzugreifen.
* **HTTP-Methodentests**: Variieren Sie Anfragemethoden (GET, POST, PUT, DELETE, PATCH), um unerwartete Verhaltensweisen oder Informationslecks 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.
* **Erweiterte Parametertechniken**: Testen Sie mit unerwarteten Datentypen in JSON-Payloads oder spielen Sie mit XML-Daten für XXE-Injektionen. Versuchen Sie auch Parameter-Pollution und Platzhalterzeichen für umfassendere Tests.
* **Versionsprüfung**: Ältere API-Versionen sind möglicherweise anfälliger für Angriffe. Überprüfen Sie immer und testen Sie gegen mehrere API-Versionen.
### **Tools und Ressourcen für das API-Pentesting**
* **kiterunner**: Hervorragend zur Entdeckung von API-Endpunkten. Verwenden Sie es, um Pfade und Parameter gegen Ziel-APIs zu scannen und 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
```
* Zusätzliche Tools wie **automatic-api-attack-tool**, **Astra** und **restler-fuzzer** bieten maßgeschneiderte Funktionen für die Sicherheitstests von APIs, von Angriffssimulationen über Fuzzing bis hin zur Schwachstellenanalyse.
### **Lern- und Übungsressourcen**
* **OWASP API Security Top 10**: Grundlagenlektüre zur Erkennung häufiger API-Schwachstellen ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
* **API Security Checklist**: Eine umfassende Checkliste zur Absicherung von APIs ([GitHub-Link](https://github.com/shieldfy/API-Security-Checklist)).
* **Logger++ Filter**: Für die Suche nach API-Schwachstellen bietet Logger++ nützliche Filter ([GitHub-Link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
* **API-Endpunkte-Liste**: Eine kuratierte Liste potenzieller API-Endpunkte für Testzwecke ([GitHub-Gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
## Referenzen
* [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um mühelos Workflows zu erstellen und zu **automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>