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

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