
Prendi una lista di domini, esegui la scansione degli URL e cerca endpoint, segreti, chiavi API, estensioni di file, token e altro.

Prendi una lista di domini, esegui il crawling degli URL e scansiona per endpoint, segreti, chiavi API, estensioni di file, token e altro ancora
Codice con 💙 da edoardottt
Condividi su Twitter!
Installazione • Utilizzo • Per iniziare • Changelog • Contribuire • Licenza
brew install cariddi
sudo snap install cariddi
go install -v github.com/edoardottt/cariddi/cmd/cariddi@latest
pacman -Syu cariddi
nix-shell -p cariddi
Hai bisogno di Go (>=1.24.0)
git clone https://github.com/edoardottt/cariddi.git
cd cariddi
go get ./...
make linux # (per installare)
make unlinux # (per disinstallare)
One-liner: git clone https://github.com/edoardottt/cariddi.git && cd cariddi && go get ./... && make linux
Nota: l'eseguibile funziona solo nella cartella cariddi.
git clone https://github.com/edoardottt/cariddi.git
cd cariddi
go get ./...
.\make.bat windows # (per installare)
.\make.bat unwindows # (per disinstallare)
Se vuoi scansionare un singolo target, puoi usare
echo https://edoardottt.com/ | cariddi
Con più target puoi usare invece un file, ad esempio urls.txt contenente:
https://edoardottt.com/
http://testphp.vulnweb.com/
Per Windows:
powershell.exe -Command "cat urls.txt | .\cariddi.exe" nel prompt dei comandicat urls.txt | cariddi.exe usando PowerShellcariddi -version (Stampa la versione)cariddi -h (Stampa l'aiuto)cariddi -examples (Stampa gli esempi)cat urls.txt | cariddi -intensive (Esegue il crawling cercando anche i sottodomini, equivalente a *.target.com)cat urls.txt | cariddi -s (Cerca segreti)cat urls.txt | cariddi -err (Cerca errori nei siti web)cat urls.txt | cariddi -e (Cerca endpoint interessanti)cat urls.txt | cariddi -info (Cerca informazioni utili nei siti web)cat urls.txt | cariddi -ext 2 (Cerca file interessanti (livello 2 su 7))cat urls.txt | cariddi -e -ef endpoints_file (Cerca endpoint personalizzati)cat urls.txt | cariddi -s -sf secrets_file (Cerca segreti personalizzati)cat urls.txt | cariddi -ie pdf,png,jpg (Ignora queste estensioni durante la scansione)Predefinito: png, svg, jpg, jpeg, bmp, jfif, gif, webp, woff, woff2, ttf, tiff, tif, mp4, webm, mkv, avi, mov, flv, wmv, mp3, wav, flac, ogg, m4a, aac, ico, cur, eot, otf vengono ignorati durante la scansione di segreti, info ed errori.
cat urls.txt | cariddi -proxy http://127.0.0.1:8080 (Imposta un proxy, supportato http e socks5)cat urls.txt | cariddi -d 2 (2 secondi tra una pagina crawdata e l'altra)cat urls.txt | cariddi -c 200 (Imposta il livello di concorrenza a 200)cat urls.txt | cariddi -i forum,blog,community,open (Ignora gli URL contenenti queste parole)cat urls.txt | cariddi -it ignore_file (Ignora gli URL contenenti almeno una riga del file di input)cat urls.txt | cariddi -cache (Usa la cartella .cariddi_cache come cache)cat urls.txt | cariddi -t 5 (Imposta il timeout per le richieste)cat urls.txt | cariddi -headers "Cookie: auth=admin;type=2;; X-Custom: customHeader"cat urls.txt | cariddi -headersfile headers.txt (Legge da un file esterno le intestazioni personalizzate)cat urls.txt | cariddi -ua "Custom User Agent" (Usa uno User Agent personalizzato)cat urls.txt | cariddi -plain (Stampa solo i risultati)cat urls.txt | cariddi -ot target_name (Risultati in file txt)cat urls.txt | cariddi -oh target_name (Risultati in file html)cat urls.txt | cariddi -json (Stampa l'output come JSON su stdout)cat urls.txt | cariddi -sr (Salva le risposte HTTP)cat urls.txt | cariddi -debug (Stampa informazioni di debug durante il crawling)cat urls.txt | cariddi -md 3 (Massimo 3 livelli di profondità)cariddi -h stampa l'aiuto.
Usage of cariddi:
-c int
Concurrency level. (default 20)
-cache
Use the .cariddi_cache folder as cache.
-d int
Delay between a page crawled and another.
-debug
Print debug information while crawling.
-e Hunt for juicy endpoints.
-ef string
Use an external file (txt, one per line) to use custom parameters for endpoints hunting.
-err
Hunt for errors in websites.
-examples
Print the examples.
-ext int
Hunt for juicy file extensions. Integer from 1(juicy) to 7(not juicy).
-h Print the help.
-headers string
Use custom headers for each request E.g. -headers "Cookie: auth=yes;;Client: type=2".
-headersfile string
Read from an external file custom headers (same format of headers flag).
-json
Print the output as JSON in stdout.
-md
Maximum depth level the crawler will follow from the initial target URL.
-i string
Ignore the URL containing at least one of the elements of this array.
-ie value
Comma-separated list of extensions to ignore while scanning.
-info
Hunt for useful informations in websites.
-intensive
Crawl searching for resources matching 2nd level domain.
-it string
Ignore the URL containing at least one of the lines of this file.
-oh string
Write the output into an HTML file.
-ot string
Write the output into a TXT file.
-plain
Print only the results.
-proxy string
Set a Proxy to be used (http and socks5 supported).
-rua
Use a random browser user agent on every request.
-s Hunt for secrets.
-sf string
Use an external file (txt, one per line) to use custom regexes for secrets hunting.
-sr
Store HTTP responses.
-t int
Set timeout for the requests. (default 10)
-ua string
Use a custom User Agent.
-version
Print the version.
Normalmente usi Burpsuite all'interno del tuo browser, quindi devi solo fidarti del certificato di Burpsuite nel browser e il gioco è fatto.
Per usare cariddi con il proxy BurpSuite devi fare alcuni passaggi ulteriori.
Se provi a usare cariddi con l'opzione -proxy http://127.0.0.1:8080 troverai questo errore nella sezione del log degli errori di Burpsuite:
Received fatal alert: bad_certificate (o qualcosa di simile relativo al certificato).
Per far funzionare correttamente cariddi con Burpsuite devi anche fidarti del certificato sull'intero PC, non solo nel browser. Questi sono i passaggi da seguire:
Vai alla scheda Proxy in Burpsuite, poi Opzioni. Fai clic sul pulsante CA Certificate ed esporta il certificato in formato DER
openssl x509 -in burp.der -inform DER -out burp.pem -outform PEM
sudo chown root:root burp.pem
sudo chmod 644 burp.pem
sudo cp burp.pem /usr/local/share/ca-certificates/
sudo c_rehash
cd /etc/ssl/certs/
sudo ln -s /usr/local/share/ca-certificates/burp.pem
sudo c_rehash .
Fonte: Fidati del certificato del proxy Burp in Debian/Ubuntu
Dopo questi passaggi, per usare cariddi con Burpsuite devi:
-proxy http://127.0.0.1:8080.Le modifiche dettagliate per ogni rilascio sono documentate nelle note di rilascio.
Basta aprire un issue/pull request.
Prima di aprire una pull request, scarica golangci-lint ed esegui
golangci-lint run
Se non ci sono errori, vai avanti :)
Prova usando https://edoardottt.github.io/cariddi-test/
echo "https://edoardottt.github.io/cariddi-test/" | cariddi
Aiutami a costruire questo!
Un ringraziamento speciale a: go-colly, ocervell, zricethezav, projectdiscovery, tomnomnom, RegexPassive e a tutti i contributori.
Questo repository è sotto GNU General Public License v3.0.
edoardottt.com per contattarmi.
cat urls.txt | cariddi -rua (Usa uno user agent casuale del browser per ogni richiesta)