Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
openapi_security_scanner — Scanner de sécurité d'autorisation automatisé pour les API basées sur OpenAPI. Teste les points de terminaison GET avec plusieurs ensembles d'identifiants pour détecter les escalades de privilèges et les bugs de contrôle d'accès défaillant via l'analyse différentielle des réponses. | Kitploit
Outils/GitHubGitHub/ngalongc/openapi_security_scanner
Scanners de VulnérabilitésTests de Sécurité des APISécurité WebTests d'Intrusion
GitHubngalongc/openapi_security_scanner

openapi_security_scanner

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

17337il y a 5 ansVérifié par Kitploit

Scanner de sécurité d'autorisation automatisé pour les API basées sur OpenAPI. Teste les points de terminaison GET avec plusieurs ensembles d'identifiants pour détecter les escalades de privilèges et les bugs de contrôle d'accès défaillant via l'analyse différentielle des réponses.

Partager

Scanner de sécurité OpenAPI

À propos du projet

Les problèmes de sécurité d'autorisation dans les applications web modernes ne peuvent pas être facilement détectés par les scanners de sécurité. Quelques exemples de Shopify, LINE, NordVPN. L'une des raisons est que les scanners de sécurité recherchent principalement des SQLi, XSS, RCE au lieu des bugs de sécurité d'autorisation, et les scanners n'ont généralement pas connaissance du comportement attendu de l'application web. C'est pourquoi la majorité des bugs d'autorisation sont actuellement découverts manuellement. Le scanner de sécurité OpenAPI a été créé pour aider à découvrir les problèmes de sécurité d'autorisation à la fois de manière automatisée et par révision manuelle. Il se comporte comme un outil de test unitaire externe pour s'assurer que tout se comporte comme il se doit.

Construit avec

  • Schemathesis

Pour commencer

Regardez cette vidéo pour suivre ou continuez à lire.

Forkez ou clonez ce projet et suivez les instructions ci-dessous pour commencer.

Le flux de travail pour utiliser ce scanner ressemblerait à ceci :

  • Préparez le fichier yaml OpenAPI de l'API ciblée
  • Définissez les points de terminaison ciblés et les variables à utiliser pour les tests de l'API
  • Générez plusieurs ensembles d'identifiants provenant de différents utilisateurs pour couvrir une variété de cas limites lors des tests de l'API
  • Après la configuration, démarrez l'exécuteur et le résultat du scan se trouve dans les artefacts
  • Planifiez l'exécution périodique de l'exécuteur et personnalisez la manière de recevoir les notifications en cas de changement dans le résultat du scan

Avantages

Pour les développeurs, l'utilisation de cet outil ajoute une couche supplémentaire de garantie que l'API se comporte comme prévu, tant en interne qu'en externe. Et le scanner peut être déclenché à chaque déploiement de code en déclenchant le pipeline https://docs.gitlab.com/ee/ci/triggers/.

Pour les chasseurs de primes de bugs, l'utilisation de cet outil garantit que vous restez toujours à jour sur l'API ciblée, car nous savons tous que même un point de terminaison spécifique n'était pas vulnérable auparavant, il pourrait le devenir à l'avenir pour diverses raisons. Il est donc plus facile d'automatiser la partie manuelle de la chasse aux bugs avec cet outil.

Avertissement avant utilisation

Assurez-vous d'avoir l'autorisation de scanner l'API ciblée.

Prérequis

Vous aurez besoin d'un fichier yaml OpenAPI de l'application web et remplacez-le par le contenu de api.yaml dans le dépôt.

Utilisation

Remplacez le contenu de api.yaml par le fichier yaml OpenAPI de la cible, puis allez dans Settings -> CI/CD -> Développez Variables du projet GitLab et saisissez les variables dans les formats ci-dessous.

OPENAPI_CREDS

Les identifiants fournis ici seront passés aux appels API sous la forme d'un en-tête Authorization: Bearer. Il est recommandé de préparer des jetons d'accès pour au moins deux comptes utilisateur avec des permissions différentes, et vous pouvez également créer plusieurs jetons d'accès par compte utilisateur pour tester les comportements corrects pour différents jetons d'accès à portées différentes.

root@kitploit:~
{
   "<user_a>":[
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      },
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      }
   ],
   "<user_b>":[
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      }
   ]
}

OPENAPI_ENDPOINTS

Les points de terminaison fournis ici doivent être des appels API basés sur GET, et vous pouvez également inclure la requête dans le corps JSON. Dans l'exemple ci-dessous, le point de terminaison est /org/{orgs}/repos et la requête est type=all. Pour le point de terminaison /repos/{owner}/{repo}, il n'y aura pas de requête.

root@kitploit:~
{
   "/orgs/{org}/repos":{
      "type":"all"
   },
   "/repos/{owner}/{repo}":{
      
   }
}

OPENAPI_PATHS

Les variables de chemin peuvent être fournies ici, et le scanner générera toutes les combinaisons à partir des valeurs des variables de chemin.

root@kitploit:~
{
   "org":[
      "test-org"
   ],
   "owner":[
      "ngalongc",
      "reconless"
   ],
   "repo":[
      "public-repo",
      "private-repo"
   ]
}

Dans ce cas, les appels API combinés suivants sont générés, et ils seront tous appelés par différents ensembles d'identifiants fournis dans OPENAPI_CREDS.

root@kitploit:~
/orgs/test-org/repos?type=all
/repos/ngalongc/public-repo
/repos/ngalongc/private-repo
/repos/reconless/public-repo
/repos/reconless/private-repo

PRIVATE_TOKEN

Allez sur https://gitlab.com/-/profile/personal_access_tokens et créez un jeton d'accès api et remplacez la valeur ici. Ce jeton d'accès GitLab est utilisé pour télécharger les résultats du scan depuis l'exécuteur GitLab.

root@kitploit:~
<YOU_GITLAB_API_ACCESS_TOKEN>

OPENAPI_BASE_URL

Ce doit être la valeur de l'URL de base de votre serveur API.

root@kitploit:~
https://example.com/api/v3

Démo : exécution de tests de permissions simples sur l'API GitHub

Capture d'écran de la notification Slack lorsque des changements d'API sont détectés

Capture d'écran du résultat du scan dans les artefacts

Rapport exemple : https://ngalog-gitlab.gitlab.io/-/openapi_security_scanner/-/jobs/966841401/artifacts/sample.html

Limitations

  • Il ne peut tester que les points de terminaison basés sur GET
  • Pour certains points de terminaison API comme /users/{user_id}/activities, les réponses sont différentes à chaque appel, donc détecter les changements de ce type d'API n'est pas significatif

Contribuer

Les contributions sont ce qui rend la communauté open source un endroit formidable pour apprendre, inspirer et créer. Toute contribution que vous apportez est grandement appréciée.

  1. Forkez le Projet
  2. Créez votre branche de fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Commitez vos modifications (git commit -m 'Add some AmazingFeature')
  4. Poussez sur la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Merge Request

Licence

Distribué sous la licence MIT. Voir LICENSE pour plus d'informations.

Contact

Ron Chan - @ngalongc

Lien du projet : https://gitlab.com/ngalog-gitlab/openapi_security_scanner

Télécharger l’outil