Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
crawlergo — Un potente crawler browser per scanner di vulnerabilità web | Kitploit
Strumenti/GitHubGitHub/qianlitp/crawlergo
RicognizioneScanner di VulnerabilitàRaccolta InformazioniSicurezza WebCrawler
GitHubqianlitp/crawlergo

crawlergo

Un potente crawler browser per scanner di vulnerabilità web

Vedi Repository
3.0k49331 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

crawlergo

chromedp BlackHat EU Arsenal

Un potente crawler per browser per scanner di vulnerabilità web

Documento in inglese | 中文文档

crawlergo è un crawler per browser che utilizza la modalità chrome headless per la raccolta di URL. Hooka i punti chiave dell'intera pagina web durante la fase di rendering del DOM, compila e invia automaticamente i moduli, attiva intelligentemente gli eventi JS e raccoglie quante più voci possibile esposte dal sito web. Il modulo integrato di deduplicazione degli URL filtra un gran numero di URL pseudo-statici, mantenendo comunque una velocità di analisi e scansione rapida per siti web di grandi dimensioni, e infine ottiene una raccolta di risultati di richieste di alta qualità.

crawlergo attualmente supporta le seguenti funzionalità:

  • Rendering dell'ambiente del browser Chrome
  • Compilazione intelligente dei moduli e invio automatico
  • Raccolta completa degli eventi DOM con attivazione automatica
  • Deduplicazione intelligente degli URL per rimuovere la maggior parte delle richieste duplicate
  • Analisi intelligente delle pagine web e raccolta degli URL, inclusi i contenuti dei file JavaScript, i commenti delle pagine, i file robots.txt e il Fuzz automatico dei percorsi comuni
  • Supporto per l'Host binding, correzione e aggiunta automatica del Referer
  • Supporto per il proxy delle richieste del browser
  • Supporto per l'invio dei risultati a scanner passivi di vulnerabilità web

Screenshot

Installazione

Leggere e confermare attentamente l'esclusione di responsabilità prima di installare e utilizzare.

Build

  • compilazione per la piattaforma corrente
root@kitploit:~
make build
  • compilazione per tutte le piattaforme
root@kitploit:~
make build_all
  1. crawlergo dipende solo dall'ambiente Chrome per funzionare, vai a scaricare una nuova versione di Chromium.
  2. Vai alla pagina di download per l'ultima versione di crawlergo ed estraila in qualsiasi directory. Se sei su Linux o macOS, concedi a crawlergo i permessi di esecuzione (+x).
  3. Oppure puoi modificare il codice e compilarlo da solo.

Se stai usando un sistema Linux e Chrome segnala dipendenze mancanti, consulta la sezione TroubleShooting qui sotto.

Avvio rapido

Via!

Supponendo che la directory di installazione di Chromium sia /tmp/chromium/, imposta 10 schede aperte contemporaneamente ed esegui la scansione di testphp.vulnweb.com:

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

Utilizzo con Docker

Puoi anche usarlo con Docker senza problemi:

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

Utilizzo del proxy

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

Chiamare crawlergo con Python

Per impostazione predefinita, crawlergo stampa i risultati direttamente sullo schermo. Impostiamo ora la modalità di output su json. Il codice di esempio per chiamarlo usando Python è il seguente:

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]--"  è la stringa separatrice di fine attività
    result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
    req_list = result["req_list"]
    print(req_list[0])


if __name__ == '__main__':
    main()

Risultati della scansione

Quando la modalità di output è impostata su json, il risultato restituito, dopo la deserializzazione JSON, contiene quattro parti:

  • all_req_list: Tutte le richieste trovate durante questa attività di scansione, inclusi qualsiasi tipo di risorsa da altri domini.
  • req_list: Restituisce i risultati del dominio corrente di questa attività di scansione, deduplicati pseudo-staticamente, senza collegamenti a risorse statiche. È un sottoinsieme di all_req_list.
  • all_domain_list: Elenco di tutti i domini trovati.
  • sub_domain_list: Elenco dei sottodomini trovati.

Esempi

crawlergo restituisce la richiesta completa e l'URL, che possono essere utilizzati in vari modi:

  • In combinazione con altri scanner passivi di vulnerabilità web

    Per prima cosa, avvia uno scanner passivo e imposta l'indirizzo di ascolto su: http://127.0.0.1:1234/

    Successivamente, supponendo che crawlergo sia sulla stessa macchina dello scanner, avvia crawlergo e imposta i parametri:

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

  • Host binding (non disponibile per versioni elevate di Chrome) (esempio)

  • Cookie personalizzati (esempio)

  • Pulizia regolare dei processi zombie generati da crawlergo (esempio), contributo di @ring04h

Bypass del rilevamento headless

crawlergo può bypassare il rilevamento della modalità headless per impostazione predefinita.

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

Risoluzione dei problemi

  • 'Fetch.enable' non trovato

    Fetch è una funzionalità supportata dalla nuova versione di Chrome. Se si verifica questo errore, significa che la tua versione è troppo vecchia; aggiorna la versione di Chrome.

  • Chrome viene eseguito con dipendenze mancanti come 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
    
  • Avviso di Timeout di navigazione / browser non trovato / percorso eseguibile del browser sconosciuto

    Assicurati che il percorso dell'eseguibile del browser sia configurato correttamente. Digita: chrome://version nella barra degli indirizzi e trova il percorso del file eseguibile:

Parametri

Parametri obbligatori

  • --chromium-path Path, -c Path Il percorso dell'eseguibile di Chrome. (Obbligatorio)

Parametri di base

  • --custom-headers Headers Personalizza l'intestazione HTTP. Passa i dati dopo la serializzazione JSON. Questa è una definizione globale e verrà utilizzata per tutte le richieste. (Predefinito: null)
  • --post-data PostData, -d PostData Dati POST. (Predefinito: null)
  • --max-crawled-count Number, -m Number Il numero massimo di attività per i crawler per evitare lunghi tempi di scansione a causa di pseudo-statici. (Predefinito: 200)
  • --filter-mode Mode, -f Mode Modalità di filtro, simple: vengono filtrati solo le risorse statiche e le richieste duplicate. smart: con capacità di filtrare pseudo-statici. strict: regole di filtraggio pseudo-statico più rigorose. (Predefinito: smart)
  • --output-mode value, -o value Modalità di output dei risultati, console: stampa i risultati in formato migliorato direttamente sullo schermo. json: stampa la stringa serializzata JSON di tutti i risultati. none: non stampa l'output. (Predefinito: console)

Espansione dell'URL di input

  • --fuzz-path Utilizza il dizionario integrato per il fuzzing dei percorsi. (Predefinito: false)
  • --fuzz-path-dict Personalizza il percorso di Fuzz passando il percorso di un file dizionario, ad esempio /home/user/fuzz_dir.txt. Ogni riga del file rappresenta un percorso da sottoporre a fuzzing. (Predefinito: null)
  • --robots-path Risolve il percorso dal file /robots.txt. (Predefinito: false)

Compilazione automatica dei moduli

  • --ignore-url-keywords, -iuk Parola chiave dell'URL che non si desidera visitare, generalmente utilizzata per escludere i collegamenti di logout quando si personalizzano i cookie. Utilizzo: -iuk logout -iuk exit. (Predefinito: "logout", "quit", "exit")
  • --form-values, -fv Personalizza il valore della compilazione del modulo, impostato per tipo di testo. Tipi supportati: default, mail, code, phone, username, password, qq, id_card, url, date e number. I tipi di testo sono identificati dalle quattro parole chiave dell'attributo id, name, class, type dell'etichetta del campo di input. Ad esempio, definisci che la casella di input della posta venga compilata automaticamente con A e la casella di input della password con B, -fv mail=A -fv password=B. Dove default rappresenta il valore di riempimento quando il tipo di testo non viene riconosciuto, come "Cralwergo". (Predefinito: Cralwergo)
  • --form-keyword-values, -fkv Personalizza il valore della compilazione del modulo, impostato per corrispondenza fuzzy di parole chiave. La parola chiave corrisponde ai quattro valori dell'attributo id, name, , dell'etichetta del campo di input. Ad esempio, corrispondenza fuzzy della parola chiave pass per riempire 123456 e della parola chiave user per riempire admin, . (Predefinito: Cralwergo)

Impostazioni avanzate per il processo di scansione

  • --max-tab-count Number, -t Number Il numero massimo di schede che il crawler può aprire contemporaneamente. (Predefinito: 8)
  • --tab-run-timeout Timeout Tempo massimo di esecuzione per una singola scheda. (Predefinito: 20s)
  • --wait-dom-content-loaded-timeout Timeout Il timeout massimo per attendere il caricamento completo della pagina. (Predefinito: 5s)
  • --event-trigger-interval Interval L'intervallo quando l'evento viene attivato automaticamente, generalmente utilizzato in caso di rete di destinazione lenta e conflitti di aggiornamento del DOM che portano alla mancata acquisizione degli URL. (Predefinito: 100ms)
  • --event-trigger-mode Value Modalità di attivazione automatica degli eventi DOM, con async e sync, per la mancata acquisizione degli URL causata da conflitti di aggiornamento del DOM. (Predefinito: async)
  • --before-exit-delay Ritardo di uscita per chiudere Chrome al termine di un'attività su una singola scheda. Utilizzato per attendere la cattura di aggiornamenti parziali del DOM e richieste XHR. (Predefinito: 1s)

Altro

  • --push-to-proxy L'indirizzo di ascolto a cui inviare i risultati del crawler, solitamente l'indirizzo di ascolto dello scanner passivo. (Predefinito: null)
  • --push-pool-max Il numero massimo di concorrenza quando si inviano i risultati del crawler all'indirizzo di ascolto. (Predefinito: 10)
  • --log-level Livelli di registrazione: debug, info, warn, error e fatal. (Predefinito: info)
  • --no-headless Disattiva la modalità headless di Chrome per visualizzare il processo di scansione. (Predefinito: false)

Seguimi

Weibo:@9ian1i Twitter: @9ian1i

Articoli correlati:Una pratica del crawler per browser per la scansione delle vulnerabilità web

Scarica lo strumento
  • --output-json filepath Scrive il risultato nel file specificato dopo la serializzazione JSON. (Predefinito: null)
  • --request-proxy proxyAddress Indirizzo del proxy socks5. Tutte le richieste di rete da crawlergo e dal browser Chrome vengono inviate tramite il proxy. (Predefinito: null)
  • class
    type
    -fkv user=admin -fkv pass=123456