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
Outils/GitHubGitHub/michelin/chopchop
Scanners de VulnérabilitésAudit de ConfigurationCollecte d'InformationsSécurité WebDevSecOps
GitHubmichelin/chopchop

ChopChop

Scanner CLI piloté par YAML qui détecte les services, fichiers et dossiers exposés sur des points de terminaison web. Conçu pour les développeurs afin d'intégrer des contrôles de sécurité dans les pipelines CI/CD avec des signatures personnalisables.

Voir le dépôt
71277il y a 5 ansVérifié par Kitploit

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 →
Partager

Build Status License Go Report Card

ChopChop

ChopChop est un outil en ligne de commande pour les tests de sécurité dynamiques des applications web, initialement écrit par le CERT de Michelin.

Son objectif est de scanner plusieurs points de terminaison et d'identifier l'exposition de services/fichiers/dossiers à travers la racine web. Les vérifications/signatures sont déclarées dans un fichier de configuration (par défaut : chopchop.yml), entièrement configurable, et notamment par les développeurs.

"Chop chop" est une expression originaire du cantonais. "Chop chop" signifie "dépêchez-vous" et suggère que quelque chose doit être fait maintenant et sans délai.


Table des matières

  • Construction
  • Utilisation
    • Indicateurs disponibles
    • Utilisation avancée
  • Créer une nouvelle vérification/signature
  • Bibliothèques externes
  • Conférences
  • Licence
  • Auteurs

Construction

Nous avons essayé de rendre le processus de construction aussi simple que possible et, espérons-le, cela devrait être aussi facile que :

root@kitploit:~
$ go mod download
$ go build .

Un binaire gochopchop devrait se trouver dans le dossier.

Avec Docker

Grâce au Github Container Registry, nous sommes en mesure de vous fournir des images Docker fraîchement construites !

root@kitploit:~
docker run ghcr.io/michelin/gochopchop scan https://foobar.com -v debug

Mais si vous préférez, vous pouvez aussi le construire localement, voir ci-dessous :

Construction locale

root@kitploit:~
docker build -t gochopchop .

Utilisation

Nous essayons continuellement de rendre goChopChop aussi simple que possible. Scanner un hôte avec cet utilitaire est aussi simple que :

root@kitploit:~
$ ./gochopchop scan https://foobar.com

Avec Docker

root@kitploit:~
docker run gochopchop scan https://foobar.com

Fichier de configuration personnalisé

root@kitploit:~
docker run -v ./:/app chopchop scan -c /app/chopchop.yml https://foobar.com

Prochaines étapes

La réécriture en Golang a eu lieu il y a quelques mois, mais il reste encore beaucoup à faire. Voici quelques fonctionnalités que nous prévoyons d'intégrer : [x] Multithreading pour de meilleures performances [x] Possibilité de spécifier le nombre de threads simultanés [x] Couleurs et meilleur formatage [x] Possibilité de filtrer les vérifications/signatures à rechercher [x] Tests unitaires et avec simulation [x] CI GitHub Et bien plus encore !

Tests

Pour tester rapidement chopchop de bout en bout, nous avons fourni un serveur web dans tests/server.go. Pour l'essayer, exécutez go run tests/server.go puis lancez chopchop avec la commande suivante ./gochopchop scan http://localhost:8000 --verbosity Debug. ChopChop devrait afficher "aucune vulnérabilité trouvée".

Il y a aussi des tests unitaires que vous pouvez lancer avec go test -v ./.... Ces tests sont intégrés dans le workflow CI de GitHub.

Indicateurs disponibles

Vous trouverez ci-dessous les indicateurs disponibles pour la commande scan :

Utilisation avancée

Voici une liste d'utilisations avancées qui pourraient vous intéresser. Remarque : Les redirections comme > pour le post-traitement peuvent être utilisées.

  • Possibilité de scanner et de désactiver la vérification SSL
root@kitploit:~
$ ./gochopchop scan https://foobar.com --insecure
  • Possibilité de scanner avec un fichier de configuration personnalisé (incluant des plugins personnalisés)
root@kitploit:~
$ ./gochopchop scan https://foobar.com --insecure --signature test_config.yml
  • Possibilité de lister tous les plugins ou par sévérité : plugins ou plugins --severity High
root@kitploit:~
$ ./gochopchop plugins --severity High
  • Possibilité de spécifier le nombre de threads simultanés : --threads 4 pour 4 workers
root@kitploit:~
$ ./gochopchop plugins --threads 4
  • Possibilité de bloquer le pipeline CI par niveau de sévérité (égal ou supérieur à la sévérité spécifiée) : --max-severity Medium
root@kitploit:~
$ ./gochopchop scan https://foobar.com --max-severity Medium
  • Possibilité de spécifier des signatures particulières à vérifier
root@kitploit:~
./gochopchop scan https://foobar.com --timeout 1 --verbosity --export=csv,json --export-filename boo --plugin-filters=Git,Zimbra,Jenkins
  • Possibilité de lister tous les plugins
root@kitploit:~
$ ./gochopchop plugins
  • Lister les plugins de sévérité Haute
root@kitploit:~
$ ./gochopchop plugins --severity High
  • Définir une liste d'URL situées dans un fichier
root@kitploit:~
$ ./gochopchop scan --url-file url_file.txt
  • Exporter les résultats de GoChopChop au format CSV et JSON
root@kitploit:~
$ ./gochopchop scan https://foobar.com  --export=csv,json --export-filename results

Créer une nouvelle vérification

Écrire une nouvelle vérification est aussi simple que :

root@kitploit:~
  - endpoint: "/.git/config"
    checks:
      - name: Git exposé
        match:
          - "[branch"
        remediation: Ne pas déployer le dossier .git sur les serveurs de production
        description: Vérifie que le dépôt GIT est accessible depuis le site
        severity: "High"

Un point de terminaison (par exemple /.git/config) est mappé à plusieurs vérifications, ce qui évite d'envoyer X requêtes pour X vérifications. Plusieurs vérifications peuvent être effectuées via une seule requête HTTP. Chaque vérification nécessite ces champs :

Bibliothèques externes

Veuillez vous référer au fichier third-party.txt pour plus d'informations.

Conférences

  • PyCon FR 2019 (L'outil a été initialement développé en Python) - https://docs.google.com/presentation/d/1uVXGUpt7tC7zQ1HWegoBbEg2LHamABIqfDfiD9MWsD8/edit
  • DEFCON AppSec Village 2020 "Turning offsec mindset to developer's toolset" - https://drive.google.com/file/d/15P8eSarIohwCVW-tR3FN78KJPGbpAtR1/view

Licence

ChopChop a été publié sous la licence Apache 2.0. Veuillez vous référer au fichier LICENSE pour plus d'informations.

Auteurs

  • Paul A.
  • David R. (Pour la version Python)
  • Stanislas M. (Pour la version Go)
Télécharger l’outil
IndicateurIndicateur completDescription
-h--helpAssistant d'aide
-v--verbosityNiveau de détail des logs
-c--signatureChemin du fichier de signature personnalisé
-k--insecureDésactiver la vérification SSL
-u--url-fileChemin vers un fichier contenant des URL à tester
-b--max-severityBloquer le pipeline CI si la sévérité est supérieure ou égale à l'indicateur spécifié
-e--exportType d'exportation de la sortie (csv et/ou json)
--export-filenameSpécifier le nom du fichier pour le(s) fichier(s) d'exportation
-t--timeoutDélai d'attente pour les requêtes HTTP
--severity-filterFiltrer les plugins par sévérité
--plugin-filterFiltrer les plugins par nom de plugin
--threadsNombre de threads simultanés
AttributTypeDescriptionOptionnel ?Exemple
namestringNom de la vérificationNonGit exposé
descriptionstringUne petite description de la vérificationNonAssurer que le dépôt .git n'est pas accessible depuis la racine web
remediationstringDonner une remédiation pour ce "problème" spécifiqueNonNe pas déployer le dossier .git sur les serveurs de production
severityEnum("High", "Medium", "Low", "Informational")Évaluer la criticité si cela se déclenche dans votre environnementNonHigh
status_codeintegerLe code de statut HTTP qui doit être retournéOui200
headersListe de stringListe des en-têtes qui doivent être présents dans la réponse HTTPOuiN/A
no_headersListe de stringListe des en-têtes qui ne doivent PAS être présents dans la réponse HTTPOuiN/A
matchListe de stringLister les chaînes qui doivent être présentes dans la réponse HTTPOui"[branch"
no_matchListe de stringLister les chaînes qui ne doivent PAS être présentes dans la réponse HTTPOuiN/A
query_stringParamètres GET à passer au point de terminaisonStringOuiquery_string: "id=FOO-chopchoptest"
Nom de la bibliothèqueLienLicence
Viperhttps://github.com/spf13/viperLicence MIT
Go-prettyhttps://github.com/jedib0t/go-prettyLicence MIT
Cobrahttps://github.com/spf13/cobraLicence Apache 2.0
strfmthttps://github.com/go-openapi/strfmtLicence Apache 2.0
Go-homedirhttps://github.com/mitchellh/go-homedirLicence MIT
pkg-errorshttps://github.com/pkg/errorsBSD 2 (Licence simplifiée)
Go-runewidthhttps://github.com/mattn/go-runewidthLicence MIT