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

92 lines
8.1 KiB
Markdown

# Testowanie penetracyjne interfejsów API sieci Web
<details>
<summary><strong>Zacznij od zera i stań się ekspertem od hakowania AWS dzięki</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
</details>
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
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 tworzyć i **automatyzować przepływy pracy** przy użyciu najbardziej zaawansowanych narzędzi społecznościowych na świecie.\
Zdobądź dostęp już dziś:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
## Podsumowanie Metodologii Testowania Interfejsów API
Testowanie penetracyjne interfejsów API wymaga strukturalnego podejścia do odkrywania podatności. Ten przewodnik zawiera kompleksową metodologię, kładącą nacisk na praktyczne techniki i narzędzia.
### **Zrozumienie Typów API**
* **Usługi sieciowe SOAP/XML**: Wykorzystaj format WSDL do dokumentacji, zazwyczaj dostępnej pod ścieżkami `?wsdl`. Narzędzia takie jak **SOAPUI** i **WSDLer** (rozszerzenie Burp Suite) są pomocne przy analizowaniu i generowaniu żądań. Przykładowa dokumentacja jest dostępna na stronie [DNE Online](http://www.dneonline.com/calculator.asmx).
* **API REST (JSON)**: Dokumentacja często jest dostępna w plikach WADL, ale narzędzia takie jak [Swagger UI](https://swagger.io/tools/swagger-ui/) zapewniają bardziej przyjazny interfejs do interakcji. **Postman** jest wartościowym narzędziem do tworzenia i zarządzania przykładowymi żądaniami.
* **GraphQL**: Język zapytań dla interfejsów API oferujący kompletny i zrozumiały opis danych w Twoim API.
### **Laboratoria Praktyczne**
* [**VAmPI**](https://github.com/erev0s/VAmPI): Celowo podatne API do praktycznego ćwiczenia, obejmujące 10 najważniejszych podatności API według OWASP.
### **Skuteczne Triki do Testowania Interfejsów API**
* **Podatności SOAP/XML**: Badaj podatności XXE, chociaż deklaracje DTD są często ograniczone. Tagi CDATA mogą umożliwić wstawienie ładunku, jeśli XML pozostaje poprawne.
* **Eskalacja uprawnień**: Testuj punkty końcowe z różnymi poziomami uprawnień, aby zidentyfikować możliwości nieautoryzowanego dostępu.
* **Błędy konfiguracji CORS**: Sprawdź ustawienia CORS pod kątem potencjalnej podatności na ataki CSRF z sesji uwierzytelnionych.
* **Odkrywanie punktów końcowych**: Wykorzystaj wzorce API do odkrywania ukrytych punktów końcowych. Narzędzia typu fuzzers mogą zautomatyzować ten proces.
* **Modyfikacja parametrów**: Eksperymentuj z dodawaniem lub zamianą parametrów w żądaniach, aby uzyskać dostęp do nieautoryzowanych danych lub funkcji.
* **Testowanie Metod HTTP**: Zróżnicuj metody żądań (GET, POST, PUT, DELETE, PATCH), aby odkryć nieoczekiwane zachowania lub ujawnienia informacji.
* **Modyfikacja typu 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 podatności.
* **Zaawansowane Techniki Parametrów**: Testuj z nieoczekiwanymi typami danych w ładunkach JSON lub baw się danymi XML wstrzyknięciami 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 Testowania Interfejsów API**
* [**kiterunner**](https://github.com/assetnote/kiterunner): Doskonałe do odkrywania punktów końcowych API. Użyj go do skanowania i siłowego przeszukiwania ścieżek i parametrów w celu znalezienia celów 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
```
* Dodatkowe narzędzia takie jak **automatic-api-attack-tool**, **Astra** i **restler-fuzzer** oferują dostosowane funkcje do testowania bezpieczeństwa interfejsów API, obejmujące symulację ataku, fuzzing i skanowanie podatności.
* [**Cherrybomb**](https://github.com/blst-security/cherrybomb): Jest to narzędzie do bezpieczeństwa interfejsów API, które audytuje Twoje API na podstawie pliku OAS (narzędzie napisane w języku Rust).
### **Zasoby do nauki i praktyki**
* **OWASP API Security Top 10**: Podstawowa lektura do zrozumienia powszechnych podatności interfejsów API ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
* **API Security Checklist**: Kompleksowa lista kontrolna do zabezpieczania interfejsów API ([link do GitHuba](https://github.com/shieldfy/API-Security-Checklist)).
* **Filtry Logger++**: Dla poszukiwania podatności interfejsów API, Logger++ oferuje przydatne filtry ([link do GitHuba](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
* **Lista punktów końcowych API**: Wyselekcjonowana lista potencjalnych punktów końcowych API do celów testowych ([gist na GitHubie](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
## Odnośniki
* [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
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 tworzyć i **automatyzować workflowy** zasilane przez najbardziej zaawansowane narzędzia społeczności na świecie.\
Zdobądź dostęp już dziś:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
<details>
<summary><strong>Zacznij od zera i zostań ekspertem w hakowaniu AWS dzięki</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
</details>