Web API Pentesting
Reading time: 4 minutes
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
Riepilogo della Metodologia di Pentesting API
Il pentesting delle API implica un approccio strutturato per scoprire vulnerabilità. Questa guida racchiude una metodologia completa, enfatizzando tecniche e strumenti pratici.
Comprendere i Tipi di API
- SOAP/XML Web Services: Utilizzano il formato WSDL per la documentazione, tipicamente trovato nei percorsi
?wsdl
. Strumenti come SOAPUI e WSDLer (Estensione di Burp Suite) sono strumentali per analizzare e generare richieste. La documentazione di esempio è accessibile su DNE Online. - REST APIs (JSON): La documentazione spesso è disponibile in file WADL, tuttavia strumenti come Swagger UI forniscono un'interfaccia più user-friendly per l'interazione. Postman è uno strumento prezioso per creare e gestire richieste di esempio.
- GraphQL: Un linguaggio di query per API che offre una descrizione completa e comprensibile dei dati nella tua API.
Laboratori Pratici
- VAmPI: Un'API deliberatamente vulnerabile per esercitazioni pratiche, coprendo le 10 vulnerabilità API principali di OWASP.
Trucchi Efficaci per il Pentesting delle API
- Vulnerabilità SOAP/XML: Esplora le vulnerabilità XXE, sebbene le dichiarazioni DTD siano spesso limitate. I tag CDATA possono consentire l'inserimento di payload se l'XML rimane valido.
- Escalation dei Privilegi: Testa gli endpoint con diversi livelli di privilegio per identificare possibilità di accesso non autorizzato.
- Misconfigurazioni CORS: Indaga le impostazioni CORS per potenziali sfruttamenti attraverso attacchi CSRF da sessioni autenticate.
- Scoperta degli Endpoint: Sfrutta i modelli API per scoprire endpoint nascosti. Strumenti come i fuzzers possono automatizzare questo processo.
- Manipolazione dei Parametri: Sperimenta con l'aggiunta o la sostituzione di parametri nelle richieste per accedere a dati o funzionalità non autorizzate.
- Testing dei Metodi HTTP: Varia i metodi di richiesta (GET, POST, PUT, DELETE, PATCH) per scoprire comportamenti inaspettati o divulgazioni di informazioni.
- Manipolazione del Content-Type: Passa tra diversi tipi di contenuto (x-www-form-urlencoded, application/xml, application/json) per testare problemi di parsing o vulnerabilità.
- Tecniche Avanzate sui Parametri: Testa con tipi di dati inaspettati nei payload JSON o gioca con i dati XML per iniezioni XXE. Prova anche la contaminazione dei parametri e i caratteri jolly per test più ampi.
- Testing delle Versioni: Le versioni API più vecchie potrebbero essere più suscettibili agli attacchi. Controlla sempre e testa contro più versioni API.
Strumenti e Risorse per il Pentesting delle API
- kiterunner: Eccellente per scoprire endpoint API. Usalo per scansionare e forzare percorsi e parametri contro le API target.
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: sj è uno strumento da riga di comando progettato per assistere nell'audit dei file di definizione Swagger/OpenAPI esposti controllando gli endpoint API associati per autenticazione debole. Fornisce anche modelli di comando per il testing manuale delle vulnerabilità.
- Strumenti aggiuntivi come automatic-api-attack-tool, Astra e restler-fuzzer offrono funzionalità su misura per il testing della sicurezza delle API, che vanno dalla simulazione di attacchi al fuzzing e alla scansione delle vulnerabilità.
- Cherrybomb: È uno strumento di sicurezza API che esamina la tua API basandosi su un file OAS (lo strumento è scritto in rust).
Risorse per Apprendimento e Pratica
- OWASP API Security Top 10: Lettura essenziale per comprendere le vulnerabilità comuni delle API (OWASP Top 10).
- API Security Checklist: Un elenco completo per la sicurezza delle API (GitHub link).
- Logger++ Filters: Per la ricerca di vulnerabilità API, Logger++ offre filtri utili (GitHub link).
- API Endpoints List: Un elenco curato di potenziali endpoint API per scopi di testing (GitHub gist).
Riferimenti
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.