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

95 lines
7.7 KiB
Markdown
Raw Normal View History

# Web API Pentesting
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2023-12-31 01:24:39 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
Use [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=web-api-pentesting) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
2022-06-06 22:28:05 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
2022-06-06 22:28:05 +00:00
## API Pentesting Methodology Summary
2021-06-08 18:47:44 +00:00
Pentesting API polega na uporządkowanym podejściu do odkrywania luk. Ten przewodnik zawiera kompleksową metodologię, podkreślając praktyczne techniki i narzędzia.
### **Understanding API Types**
* **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 na [DNE Online](http://www.dneonline.com/calculator.asmx).
* **REST APIs (JSON)**: Dokumentacja często występuje w plikach WADL, jednak narzędzia takie jak [Swagger UI](https://swagger.io/tools/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.
### **Practice Labs**
* [**VAmPI**](https://github.com/erev0s/VAmPI): Celowo podatne API do praktyki, obejmujące 10 najważniejszych luk w API według OWASP.
### **Effective Tricks for API Pentesting**
* **SOAP/XML Vulnerabilities**: Zbadaj luki XXE, chociaż deklaracje DTD są często ograniczone. Tag CDATA może pozwolić na wstawienie ładunku, jeśli XML pozostaje ważny.
* **Privilege Escalation**: Testuj punkty końcowe z różnymi poziomami uprawnień, aby zidentyfikować możliwości nieautoryzowanego dostępu.
* **CORS Misconfigurations**: Zbadaj ustawienia CORS pod kątem potencjalnej wykonalności przez ataki CSRF z sesji uwierzytelnionych.
* **Endpoint Discovery**: Wykorzystaj wzorce API do odkrywania ukrytych punktów końcowych. Narzędzia takie jak fuzzery mogą zautomatyzować ten proces.
* **Parameter Tampering**: Eksperymentuj z dodawaniem lub zastępowaniem parametrów w żądaniach, aby uzyskać dostęp do nieautoryzowanych danych lub funkcji.
* **HTTP Method Testing**: Zmieniaj metody żądań (GET, POST, PUT, DELETE, PATCH), aby odkryć nieoczekiwane zachowania lub ujawnienia informacji.
* **Content-Type Manipulation**: Przełączaj się między różnymi typami treści (x-www-form-urlencoded, application/xml, application/json), aby testować problemy z analizą lub luki.
* **Advanced Parameter Techniques**: 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.
* **Version Testing**: Starsze wersje API mogą być bardziej podatne na ataki. Zawsze sprawdzaj i testuj przeciwko wielu wersjom API.
### **Tools and Resources for API Pentesting**
* [**kiterunner**](https://github.com/assetnote/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.
2024-02-08 21:36:15 +00:00
```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
```
* 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**](https://github.com/blst-security/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**: Niezbędna lektura do zrozumienia powszechnych podatności API ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
* **Lista kontrolna bezpieczeństwa API**: Kompletna lista kontrolna do zabezpieczania API ([link do GitHub](https://github.com/shieldfy/API-Security-Checklist)).
* **Filtry Logger++**: Do poszukiwania podatności API, Logger++ oferuje przydatne filtry ([link do GitHub](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
* **Lista punktów końcowych API**: Starannie wyselekcjonowana lista potencjalnych punktów końcowych API do celów testowych ([gist GitHub](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
2022-09-30 10:27:15 +00:00
## Referencje
2022-09-27 09:36:19 +00:00
2024-02-08 21:36:15 +00:00
* [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
2022-09-05 10:17:20 +00:00
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
Użyj [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=web-api-pentesting), aby łatwo budować i **automatyzować przepływy pracy** zasilane przez **najbardziej zaawansowane** narzędzia społecznościowe na świecie.\
Uzyskaj dostęp już dziś:
2022-06-06 22:28:05 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
2022-06-06 22:28:05 +00:00
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Wsparcie dla HackTricks</summary>
2023-12-31 01:24:39 +00:00
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów GitHub.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}