56 lines
4.8 KiB
Markdown

# Web API Pentesting
{{#include ../../banners/hacktricks-training.md}}
## API Pentesting Metodologie Opsomming
Pentesting APIs behels 'n gestruktureerde benadering om kwesbaarhede te ontdek. Hierdie gids sluit 'n omvattende metodologie in, met die klem op praktiese tegnieke en gereedskap.
### **Begrip van API Tipes**
- **SOAP/XML Web Dienste**: Gebruik die WSDL-formaat vir dokumentasie, wat tipies by `?wsdl` padhulpmiddels gevind word. Gereedskap soos **SOAPUI** en **WSDLer** (Burp Suite Extension) is instrumenteel vir die ontleding en generering van versoeke. Voorbeeld dokumentasie is beskikbaar by [DNE Online](http://www.dneonline.com/calculator.asmx).
- **REST APIs (JSON)**: Dokumentasie kom dikwels in WADL-lêers, maar gereedskap soos [Swagger UI](https://swagger.io/tools/swagger-ui/) bied 'n meer gebruikersvriendelike koppelvlak vir interaksie. **Postman** is 'n waardevolle hulpmiddel vir die skep en bestuur van voorbeeld versoeke.
- **GraphQL**: 'n Vra taal vir APIs wat 'n volledige en verstaanbare beskrywing van die data in jou API bied.
### **Praktyk Laboratoriums**
- [**VAmPI**](https://github.com/erev0s/VAmPI): 'n Opsetlik kwesbare API vir praktiese oefening, wat die OWASP top 10 API kwesbaarhede dek.
### **Doeltreffende Truuks vir API Pentesting**
- **SOAP/XML Kwesbaarhede**: Verken XXE kwesbaarhede, alhoewel DTD-verklarings dikwels beperk is. CDATA-tags mag payload-invoeging toelaat as die XML geldig bly.
- **Privilegie Eskalasie**: Toets eindpunte met verskillende priviligie vlakke om ongeoorloofde toegang moontlikhede te identifiseer.
- **CORS Misconfigurasies**: Ondersoek CORS-instellings vir potensiële uitbuitbaarheid deur CSRF-aanvalle vanuit geverifieerde sessies.
- **Eindpunt Ontdekking**: Gebruik API patrone om verborge eindpunte te ontdek. Gereedskap soos fuzzers kan hierdie proses outomatiseer.
- **Parameter Manipulasie**: Eksperimenteer met die toevoeging of vervanging van parameters in versoeke om toegang tot ongeoorloofde data of funksies te verkry.
- **HTTP Metode Toetsing**: Varieer versoekmetodes (GET, POST, PUT, DELETE, PATCH) om onverwagte gedrag of inligtingsontsluitings te ontdek.
- **Inhoud-Tipe Manipulasie**: Wissel tussen verskillende inhoudstipes (x-www-form-urlencoded, application/xml, application/json) om te toets vir ontledingsprobleme of kwesbaarhede.
- **Geavanceerde Parameter Tegnieke**: Toets met onverwagte datatipes in JSON payloads of speel met XML data vir XXE inspuitings. Probeer ook parameter besoedeling en wildcard karakters vir breër toetsing.
- **Weergawe Toetsing**: Ou API weergawes mag meer kwesbaar wees vir aanvalle. Kontroleer altyd vir en toets teen verskeie API weergawes.
### **Gereedskap en Hulpbronne vir API Pentesting**
- [**kiterunner**](https://github.com/assetnote/kiterunner): Uitstekend vir die ontdekking van API eindpunte. Gebruik dit om padhulpmiddels en parameters teen teiken APIs te skandeer en brute force.
```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**](https://github.com/BishopFox/sj): sj is 'n opdraglyn hulpmiddel wat ontwerp is om te help met die oudit van **blootgestelde Swagger/OpenAPI definisie lêers** deur die geassosieerde API eindpunte vir swak outentisering te kontroleer. Dit bied ook opdrag sjablone vir handmatige kwesbaarheidstoetsing.
- Bykomende hulpmiddels soos **automatic-api-attack-tool**, **Astra**, en **restler-fuzzer** bied op maat gemaakte funksies vir API sekuriteitstoetsing, wat wissel van aanvalsimulasie tot fuzzing en kwesbaarheidsskandering.
- [**Cherrybomb**](https://github.com/blst-security/cherrybomb): Dit is 'n API sekuriteitshulpmiddel wat jou API oudit op grond van 'n OAS-lêer (die hulpmiddel is in rust geskryf).
### **Leer- en Oefenbronne**
- **OWASP API Sekuriteit Top 10**: Essensiële leesstof om algemene API kwesbaarhede te verstaan ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
- **API Sekuriteitskontrolelys**: 'n Omvattende kontrolelys vir die beveiliging van API's ([GitHub link](https://github.com/shieldfy/API-Security-Checklist)).
- **Logger++ Filters**: Vir die jag op API kwesbaarhede, bied Logger++ nuttige filters ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
- **API Eindpunte Lys**: 'n Gekureerde lys van potensiële API eindpunte vir toetsdoeleindes ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
## Verwysings
- [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
{{#include ../../banners/hacktricks-training.md}}