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
crawlergo — Un puissant crawler de navigateur pour les scanners de vulnérabilités web | Kitploit
Outils/GitHubGitHub/qianlitp/crawlergo
ReconnaissanceScanners de VulnérabilitésCollecte d'InformationsSécurité WebCrawler
GitHubqianlitp/crawlergo

crawlergo

Un puissant crawler de navigateur pour les scanners de vulnérabilités web

Voir le dépôt
3.0k493il y a 1 anVé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

crawlergo

chromedp BlackHat EU Arsenal

Un puissant crawler de navigateur pour les scanners de vulnérabilités Web

Document anglais | 中文文档

crawlergo est un crawler de navigateur qui utilise le mode chrome headless pour la collecte d'URL. Il accroche les positions clés de la page Web entière avec l'étape de rendu DOM, remplit et soumet automatiquement les formulaires, avec un déclenchement intelligent d'événements JS, et collecte autant d'entrées exposées par le site Web que possible. Le module intégré de déduplication d'URL filtre un grand nombre d'URL pseudo-statiques, maintient une vitesse d'analyse et de crawl rapide pour les grands sites Web, et obtient finalement une collection de résultats de requêtes de haute qualité.

crawlergo prend actuellement en charge les fonctionnalités suivantes :

  • Rendu de l'environnement du navigateur Chrome
  • Remplissage intelligent de formulaires, soumission automatisée
  • Collecte complète des événements DOM avec déclenchement automatisé
  • Déduplication intelligente des URL pour supprimer la plupart des demandes en double
  • Analyse intelligente des pages Web et collecte d'URL, y compris le contenu des fichiers JavaScript, les commentaires de page, les fichiers robots.txt et le Fuzz automatique des chemins courants
  • Prise en charge de la liaison d'hôte, correction et ajout automatiques du Referer
  • Prise en charge du proxy de requête du navigateur
  • Prise en charge de l'envoi des résultats vers les scanners passifs de vulnérabilités Web

Screenshot

Installation

Veuillez lire et confirmer l'avertissement attentivement avant d'installer et d'utiliser.

Construire

  • compilation pour la plateforme actuelle
root@kitploit:~
make build
  • compilation pour toutes les plateformes
root@kitploit:~
make build_all
  1. crawlergo ne dépend que de l'environnement Chrome pour fonctionner, allez sur téléchargement pour la nouvelle version de Chromium.
  2. Allez sur la page de téléchargement pour la dernière version de crawlergo et extrayez-la dans n'importe quel répertoire. Si vous êtes sous Linux ou macOS, veuillez donner à crawlergo les permissions d'exécution (+x).
  3. Ou vous pouvez modifier le code et le construire vous-même.

Si vous utilisez un système Linux et que Chrome vous signale des dépendances manquantes, veuillez consulter la section Dépannage ci-dessous

Démarrage rapide

Go !

En supposant que votre répertoire d'installation de Chromium est /tmp/chromium/, configurez 10 onglets ouverts simultanément et crawlez testphp.vulnweb.com :

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/

Utilisation avec Docker

Vous pouvez également l'utiliser avec Docker sans tracas :

root@kitploit:~
git clone https://github.com/Qianlitp/crawlergo
docker build . -t crawlergo
docker run crawlergo http://testphp.vulnweb.com/

Utilisation d'un proxy

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/

Appeler crawlergo avec Python

Par défaut, crawlergo affiche les résultats directement à l'écran. Nous définissons ensuite le mode de sortie sur json, et le code d'exemple pour l'appeler en utilisant Python est le suivant :

root@kitploit:~
#!/usr/bin/python3
# coding: utf-8

import simplejson
import subprocess


def main():
    target = "http://testphp.vulnweb.com/"
    cmd = ["bin/crawlergo", "-c", "/tmp/chromium/chrome", "-o", "json", target]
    rsp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = rsp.communicate()
	#  "--[Mission Complete]--"  is the end-of-task separator string
    result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
    req_list = result["req_list"]
    print(req_list[0])


if __name__ == '__main__':
    main()

Résultats du crawl

Lorsque le mode de sortie est défini sur json, le résultat retourné, après désérialisation JSON, contient quatre parties :

  • all_req_list : Toutes les requêtes trouvées lors de cette tâche de crawl, contenant tout type de ressource provenant d'autres domaines.
  • req_list : Retourne les résultats du domaine actuel de cette tâche de crawl, dédupliqués pseudo-statiquement, sans les liens de ressources statiques. C'est un sous-ensemble de all_req_list.
  • all_domain_list : Liste de tous les domaines trouvés.
  • sub_domain_list : Liste des sous-domaines trouvés.

Exemples

crawlergo retourne la requête complète et l'URL, ce qui peut être utilisé de diverses manières :

  • Utilisé en conjonction avec d'autres scanners passifs de vulnérabilités Web

    Tout d'abord, démarrez un scanner passif et définissez l'adresse d'écoute sur : http://127.0.0.1:1234/

    Ensuite, en supposant que crawlergo est sur la même machine que le scanner, démarrez crawlergo et définissez les paramètres :

    --push-to-proxy http://127.0.0.1:1234/

  • Liaison d'hôte (non disponible pour les versions élevées de Chrome) (exemple)

  • Cookies personnalisés (exemple)

  • Nettoyer régulièrement les processus zombies générés par crawlergo (exemple) , contribué par @ring04h

Contournement de la détection headless

crawlergo peut contourner la détection du mode headless par défaut.

https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html

Dépannage

  • Erreur 'Fetch.enable' introuvable

    Fetch est une fonctionnalité prise en charge par la nouvelle version de Chrome. Si cette erreur se produit, cela signifie que votre version est trop ancienne, veuillez mettre à jour votre version de Chrome.

  • Chrome s'exécute avec des dépendances manquantes telles que xxx.so

    root@kitploit:~
    // Ubuntu
    apt-get install -yq --no-install-recommends \
         libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
         libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
         libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libgbm1 \
         libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libnss3
         
    // CentOS 7
    sudo yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 \
         libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 \
         ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
    
    sudo yum update nss -y
    
  • Invite d'exécution Délai d'expiration de navigation / navigateur non trouvé / ne connaît pas le chemin d'exécution du navigateur correct

    Assurez-vous que le chemin d'exécution du navigateur est correctement configuré, tapez : chrome://version dans la barre d'adresse, et trouvez le chemin du fichier exécutable :

Paramètres

Paramètres requis

  • --chromium-path Path, -c Path Le chemin vers l'exécutable Chrome. (Requis)

Paramètres de base

  • --custom-headers Headers Personnalisez l'en-tête HTTP. Veuillez passer les données après sérialisation JSON, ceci est défini globalement et sera utilisé pour toutes les requêtes. (Par défaut : null)
  • --post-data PostData, -d PostData Données POST. (Par défaut : null)
  • --max-crawled-count Number, -m Number Le nombre maximum de tâches pour les crawlers afin d'éviter un temps de crawl long dû au pseudo-statique. (Par défaut : 200)
  • --filter-mode Mode, -f Mode Mode de filtrage, simple : seules les ressources statiques et les requêtes en double sont filtrées. smart : avec la capacité de filtrer le pseudo-statique. strict : règles de filtrage pseudo-statique plus strictes. (Par défaut : smart)
  • --output-mode value, -o value Mode de sortie des résultats, console : imprime les résultats formatés directement à l'écran. json : imprime la chaîne sérialisée JSON de tous les résultats. none : n'imprime pas la sortie. (Par défaut : console)

Étendre l'URL d'entrée

  • --fuzz-path Utiliser le dictionnaire intégré pour le fuzzing de chemin. (Par défaut : false)
  • --fuzz-path-dict Personnalisez le chemin de Fuzz en passant un chemin de fichier dictionnaire, par exemple /home/user/fuzz_dir.txt, chaque ligne du fichier représente un chemin à fuzzer. (Par défaut : null)
  • --robots-path Résoudre le chemin à partir du fichier /robots.txt. (Par défaut : false)

Remplissage automatique de formulaire

  • --ignore-url-keywords, -iuk Mot-clé d'URL que vous ne souhaitez pas visiter, généralement utilisé pour exclure les liens de déconnexion lors de la personnalisation des cookies. Utilisation : -iuk logout -iuk exit. (par défaut : "logout", "quit", "exit")
  • --form-values, -fv Personnalisez la valeur du remplissage du formulaire, définie par type de texte. Types de définition pris en charge : default, mail, code, phone, username, password, qq, id_card, url, date et number. Les types de texte sont identifiés par les quatre mots-clés de valeur d'attribut id, name, class, type de l'étiquette de la zone de saisie. Par exemple, définissez la zone de saisie de l'e-mail pour qu'elle soit automatiquement remplie avec A et la zone de saisie du mot de passe pour qu'elle soit automatiquement remplie avec B, -fv mail=A -fv password=B. Où default représente la valeur de remplissage lorsque le type de texte n'est pas reconnu, comme "Cralwergo". (Par défaut : Cralwergo)
  • --form-keyword-values, -fkv Personnalisez la valeur du remplissage du formulaire, définie par correspondance floue de mot-clé. Le mot-clé correspond aux quatre valeurs d'attribut id, , , de l'étiquette de la zone de saisie. Par exemple, faire correspondre flouement le mot-clé pass pour remplir 123456 et le mot-clé user pour remplir admin, . (Par défaut : Cralwergo)

Paramètres avancés pour le processus de crawl

  • --max-tab-count Number, -t Number Le nombre maximum d'onglets que le crawler peut ouvrir simultanément. (Par défaut : 8)
  • --tab-run-timeout Timeout Temps d'exécution maximum pour une seule page d'onglet. (Par défaut : 20s)
  • --wait-dom-content-loaded-timeout Timeout Le délai d'attente maximum pour que la page finisse de se charger. (Par défaut : 5s)
  • --event-trigger-interval Interval L'intervalle lorsque l'événement est déclenché automatiquement, généralement utilisé en cas de réseau cible lent et de conflits de mise à jour DOM qui entraînent une capture manquée d'URL. (Par défaut : 100ms)
  • --event-trigger-mode Value Mode de déclenchement automatique des événements DOM, avec async et sync, pour la capture manquée d'URL causée par des conflits de mise à jour DOM. (Par défaut : async)
  • --before-exit-delay Délai de sortie pour fermer Chrome à la fin d'une tâche d'onglet unique. Utilisé pour attendre que les mises à jour DOM partielles et les requêtes XHR soient capturées. (Par défaut : 1s)

Autres

  • --push-to-proxy L'adresse d'écoute pour recevoir le résultat du crawler, généralement l'adresse d'écoute du scanner passif. (Par défaut : null)
  • --push-pool-max Le nombre maximum de concurrence lors de l'envoi des résultats du crawler à l'adresse d'écoute. (Par défaut : 10)
  • --log-level Niveaux de journalisation, debug, info, warn, error et fatal. (Par défaut : info)
  • --no-headless Désactiver le mode headless de Chrome pour visualiser le processus de crawl. (Par défaut : false)

Suivez-moi

Weibo:@9ian1i Twitter: @9ian1i

Articles connexes : Une pratique de crawler de navigateur pour le scan de vulnérabilités Web

Télécharger l’outil
  • --output-json filepath Écrire le résultat dans le fichier spécifié après l'avoir sérialisé en JSON. (Par défaut : null)
  • --request-proxy proxyAddress Adresse du proxy socks5, toutes les requêtes réseau de crawlergo et du navigateur Chrome sont envoyées via le proxy. (Par défaut : null)
  • name
    class
    type
    -fkv user=admin -fkv pass=123456