Web API Pentesting

Reading time: 5 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Résumé de la méthodologie de pentesting API

Le pentesting des API implique une approche structurée pour découvrir des vulnérabilités. Ce guide encapsule une méthodologie complÚte, mettant l'accent sur des techniques et des outils pratiques.

Comprendre les types d'API

  • SOAP/XML Web Services : Utilisent le format WSDL pour la documentation, gĂ©nĂ©ralement trouvĂ© aux chemins ?wsdl. Des outils comme SOAPUI et WSDLer (extension Burp Suite) sont essentiels pour analyser et gĂ©nĂ©rer des requĂȘtes. La documentation d'exemple est accessible sur DNE Online.
  • REST APIs (JSON) : La documentation se prĂ©sente souvent sous forme de fichiers WADL, mais des outils comme Swagger UI offrent une interface plus conviviale pour l'interaction. Postman est un outil prĂ©cieux pour crĂ©er et gĂ©rer des requĂȘtes d'exemple.
  • GraphQL : Un langage de requĂȘte pour les API offrant une description complĂšte et comprĂ©hensible des donnĂ©es dans votre API.

Laboratoires pratiques

  • VAmPI : Une API dĂ©libĂ©rĂ©ment vulnĂ©rable pour une pratique concrĂšte, couvrant les 10 principales vulnĂ©rabilitĂ©s API de l'OWASP.

Astuces efficaces pour le pentesting API

  • VulnĂ©rabilitĂ©s SOAP/XML : Explorez les vulnĂ©rabilitĂ©s XXE, bien que les dĂ©clarations DTD soient souvent restreintes. Les balises CDATA peuvent permettre l'insertion de charges utiles si le XML reste valide.
  • Escalade de privilĂšges : Testez les points de terminaison avec diffĂ©rents niveaux de privilĂšges pour identifier les possibilitĂ©s d'accĂšs non autorisĂ©.
  • Mauvaise configuration CORS : Examinez les paramĂštres CORS pour une Ă©ventuelle exploitabilitĂ© via des attaques CSRF Ă  partir de sessions authentifiĂ©es.
  • DĂ©couverte de points de terminaison : Exploitez les modĂšles d'API pour dĂ©couvrir des points de terminaison cachĂ©s. Des outils comme les fuzzers peuvent automatiser ce processus.
  • Manipulation de paramĂštres : ExpĂ©rimentez en ajoutant ou en remplaçant des paramĂštres dans les requĂȘtes pour accĂ©der Ă  des donnĂ©es ou des fonctionnalitĂ©s non autorisĂ©es.
  • Test des mĂ©thodes HTTP : Variez les mĂ©thodes de requĂȘte (GET, POST, PUT, DELETE, PATCH) pour dĂ©couvrir des comportements inattendus ou des divulgations d'informations.
  • Manipulation du type de contenu : Alternez entre diffĂ©rents types de contenu (x-www-form-urlencoded, application/xml, application/json) pour tester des problĂšmes d'analyse ou des vulnĂ©rabilitĂ©s.
  • Techniques avancĂ©es de paramĂštres : Testez avec des types de donnĂ©es inattendus dans les charges utiles JSON ou jouez avec des donnĂ©es XML pour des injections XXE. Essayez Ă©galement la pollution de paramĂštres et les caractĂšres gĂ©nĂ©riques pour des tests plus larges.
  • Test de version : Les anciennes versions d'API peuvent ĂȘtre plus susceptibles aux attaques. VĂ©rifiez toujours et testez contre plusieurs versions d'API.

Outils et ressources pour le pentesting API

  • kiterunner : Excellent pour dĂ©couvrir des points de terminaison API. Utilisez-le pour scanner et forcer les chemins et les paramĂštres contre les API cibles.
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 est un outil en ligne de commande conçu pour aider Ă  l'audit des fichiers de dĂ©finition Swagger/OpenAPI exposĂ©s en vĂ©rifiant les points de terminaison API associĂ©s pour une authentification faible. Il fournit Ă©galement des modĂšles de commandes pour les tests de vulnĂ©rabilitĂ© manuels.
  • Des outils supplĂ©mentaires comme automatic-api-attack-tool, Astra et restler-fuzzer offrent des fonctionnalitĂ©s adaptĂ©es pour les tests de sĂ©curitĂ© API, allant de la simulation d'attaque au fuzzing et Ă  l'analyse de vulnĂ©rabilitĂ©s.
  • Cherrybomb : C'est un outil de sĂ©curitĂ© API qui audite votre API basĂ© sur un fichier OAS (l'outil est Ă©crit en rust).

Ressources d'apprentissage et de pratique

  • OWASP API Security Top 10 : Lecture essentielle pour comprendre les vulnĂ©rabilitĂ©s API courantes (OWASP Top 10).
  • API Security Checklist : Une liste de contrĂŽle complĂšte pour sĂ©curiser les API (GitHub link).
  • Logger++ Filters : Pour chasser les vulnĂ©rabilitĂ©s API, Logger++ offre des filtres utiles (GitHub link).
  • API Endpoints List : Une liste soigneusement sĂ©lectionnĂ©e de points de terminaison API potentiels Ă  des fins de test (GitHub gist).

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks