mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
94 lines
7.5 KiB
Markdown
94 lines
7.5 KiB
Markdown
# Web API Pentesting
|
|
|
|
{% 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)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
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:
|
|
|
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
|
|
|
|
## API Pentesting Methodology Summary
|
|
|
|
Pentesting API-ja uključuje strukturiran pristup otkrivanju ranjivosti. Ovaj vodič obuhvata sveobuhvatnu metodologiju, naglašavajući praktične tehnike i alate.
|
|
|
|
### **Understanding API Types**
|
|
|
|
* **SOAP/XML Web Services**: Koriste WSDL format za dokumentaciju, obično se nalaze na `?wsdl` putanjama. Alati kao što su **SOAPUI** i **WSDLer** (Burp Suite Extension) su ključni za parsiranje i generisanje zahteva. Primer dokumentacije je dostupan na [DNE Online](http://www.dneonline.com/calculator.asmx).
|
|
* **REST APIs (JSON)**: Dokumentacija često dolazi u WADL datotekama, ali alati kao što je [Swagger UI](https://swagger.io/tools/swagger-ui/) pružaju korisnički prijatniji interfejs za interakciju. **Postman** je vredan alat za kreiranje i upravljanje primerima zahteva.
|
|
* **GraphQL**: Jezik upita za API-je koji nudi potpunu i razumljivu opis podataka u vašem API-ju.
|
|
|
|
### **Practice Labs**
|
|
|
|
* [**VAmPI**](https://github.com/erev0s/VAmPI): Namerno ranjiv API za praktičnu obuku, pokrivajući OWASP top 10 API ranjivosti.
|
|
|
|
### **Effective Tricks for API Pentesting**
|
|
|
|
* **SOAP/XML Vulnerabilities**: Istražite XXE ranjivosti, iako su DTD deklaracije često ograničene. CDATA tagovi mogu omogućiti umetanje payload-a ako XML ostane validan.
|
|
* **Privilege Escalation**: Testirajte krajnje tačke sa različitim nivoima privilegija kako biste identifikovali mogućnosti neovlašćenog pristupa.
|
|
* **CORS Misconfigurations**: Istražite CORS podešavanja za potencijalnu iskoristivost kroz CSRF napade iz autentifikovanih sesija.
|
|
* **Endpoint Discovery**: Iskoristite API obrasce za otkrivanje skrivenih krajnjih tačaka. Alati kao što su fuzzers mogu automatizovati ovaj proces.
|
|
* **Parameter Tampering**: Eksperimentišite sa dodavanjem ili zamenom parametara u zahtevima kako biste pristupili neovlašćenim podacima ili funkcionalnostima.
|
|
* **HTTP Method Testing**: Varirajte metode zahteva (GET, POST, PUT, DELETE, PATCH) kako biste otkrili neočekivana ponašanja ili otkrivanje informacija.
|
|
* **Content-Type Manipulation**: Prebacujte se između različitih tipova sadržaja (x-www-form-urlencoded, application/xml, application/json) kako biste testirali probleme sa parsiranjem ili ranjivosti.
|
|
* **Advanced Parameter Techniques**: Testirajte sa neočekivanim tipovima podataka u JSON payload-ima ili se igrajte sa XML podacima za XXE injekcije. Takođe, isprobajte zagađenje parametara i wildcard karaktere za šire testiranje.
|
|
* **Version Testing**: Starije verzije API-ja mogu biti podložnije napadima. Uvek proverite i testirajte protiv više verzija API-ja.
|
|
|
|
### **Tools and Resources for API Pentesting**
|
|
|
|
* [**kiterunner**](https://github.com/assetnote/kiterunner): Odličan za otkrivanje API krajnjih tačaka. Koristite ga za skeniranje i brute force putanja i parametara protiv ciljanih API-ja.
|
|
```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
|
|
```
|
|
* Dodatni alati kao što su **automatic-api-attack-tool**, **Astra** i **restler-fuzzer** nude prilagođene funkcionalnosti za testiranje sigurnosti API-ja, od simulacije napada do fuzzinga i skeniranja ranjivosti.
|
|
* [**Cherrybomb**](https://github.com/blst-security/cherrybomb): To je alat za sigurnost API-ja koji vrši reviziju vašeg API-ja na osnovu OAS datoteke (alat napisan u rustu).
|
|
|
|
### **Resursi za učenje i praksu**
|
|
|
|
* **OWASP API Security Top 10**: Osnovno čitanje za razumevanje uobičajenih ranjivosti API-ja ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
|
|
* **API Security Checklist**: Sveobuhvatna lista za osiguranje API-ja ([GitHub link](https://github.com/shieldfy/API-Security-Checklist)).
|
|
* **Logger++ Filters**: Za pronalaženje ranjivosti API-ja, Logger++ nudi korisne filtre ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
|
|
* **API Endpoints List**: Kurirana lista potencijalnih API krajnjih tačaka za testiranje ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
|
|
|
|
## Reference
|
|
|
|
* [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>
|
|
|
|
Koristite [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=web-api-pentesting) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
|
|
Pristupite danas:
|
|
|
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
|
|
|
|
{% hint style="success" %}
|
|
Učite i vežbajte 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">\
|
|
Učite i vežbajte 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)
|
|
|
|
<details>
|
|
|
|
<summary>Podržite HackTricks</summary>
|
|
|
|
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
|
|
|
</details>
|
|
{% endhint %}
|