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
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.
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
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.