Skip to content

Projet avec l'objectif de développer un outil de fuzzing pour valider les propriétés générique de l'API développée

Notifications You must be signed in to change notification settings

kevin35ledy/Fuzzing-Swagger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Fuzzing-Swagger

##Introduction Ce projet a pour but de créer un fuzzer adapté pour les API REST développées en Node js.

Swagger nous permet de représenter de manière normalisée les API. La méthode utilisée pour tester l'API sera un fuzzer.

Ce fuzzer va générer des données aléatoires et essayer de détecter les failles du système.

##Installation Pour jouer avec swagger :

Installer swagger : sudo npm install -g swagger

Créer un projet : swagger project create <project name>

###Liens utiles : Le lien ci-dessous nous a permis de développer la partie serveur en Node JS avec le module Swagger. https://scotch.io/tutorials/speed-up-your-restful-api-development-in-node-js-with-swagger

OWASP donne un essemble de test de fuzzing pour regaredr les failles : https://www.owasp.org/index.php/OWASP_Testing_Guide_Appendix_C:_Fuzz_Vectors

Lancer l'éditeur Swagger : ```swagger project edit``


#Parsing du swagger yaml vers json

Parseur yaml -> json brew install swagger-codegen Se placer dans le dossier du projet swagger cd api/swagger/ on génère le fichier json swagger-codegen generate -i swagger.yaml -l swagger

##Fuzzer Le but principal du projet consiste à fuser une api Swagger. Par conséquent nous avons trouvé une api représentant un service e-commerce d'animaux de compagnie, vous pourrez trouver cette API à l'adresse suivante : http://petstore.swagger.io/

Ainsi pour installer notre projet, il faut télécharger les sources, ajouter les jars :

commons-lang3-3.5, httpclient-4.5.2, httpmime-4.5.2, jackson-annotations-2.8.5, jackson-core-2.8.5, jackson-databind-2.8.5, jackson-dataformat-yaml-2.8.5, json-20160810, slf4j-api-1.7.21, swagger-core-1.5.10 , swagger-models-1.5.10, swagger-parser-1.0.23

Et runner la classe Launcher.

Celle-ci va générer et exécuter les requêtes pour fuser l'api swagger du petstore.

Le Launcher fait appel au JSONParser qui va récupérer le swagger.json (méta-modèle de l'api), à l'adresse suivante : http://petstore.swagger.io/v2/swagger.json

Ensuite, celui-ci parse le json pour fabriquer des Paths avec des Opérations de type GET, POST, PUT, DELETE, et leurs paramètres.

Les résultats des tests sont enregistrés dans un fichier csv.

Pour tester une autre api swagger, vous devez modifier l'url du swagger.json dans le JSONParser, ainsi que l'adresse ou vont les requêtes dans le Launcher.

About

Projet avec l'objectif de développer un outil de fuzzing pour valider les propriétés générique de l'API développée

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •