
Nimm eine Liste von Domains, crawle URLs und scanne nach Endpunkten, Geheimnissen, API-Schlüsseln, Dateierweiterungen, Tokens und mehr

Nimm eine Liste von Domains, crawle URLs und durchsuche sie nach Endpunkten, Geheimnissen, API-Schlüsseln, Dateierweiterungen, Tokens und mehr
Programmiert mit 💙 von edoardottt
Auf Twitter teilen!
Installation • Nutzung • Los geht's • Änderungsprotokoll • Mitwirken • Lizenz
brew install cariddi
sudo snap install cariddi
go install -v github.com/edoardottt/cariddi/cmd/cariddi@latest
pacman -Syu cariddi
nix-shell -p cariddi
Du benötigst Go (>=1.24.0)
git clone https://github.com/edoardottt/cariddi.git
cd cariddi
go get ./...
make linux # (to install)
make unlinux # (to uninstall)
One-liner: git clone https://github.com/edoardottt/cariddi.git && cd cariddi && go get ./... && make linux
Hinweis: Die ausführbare Datei funktioniert nur im cariddi-Ordner.
git clone https://github.com/edoardottt/cariddi.git
cd cariddi
go get ./...
.\make.bat windows # (to install)
.\make.bat unwindows # (to uninstall)
Wenn du nur ein einzelnes Ziel scannen möchtest, kannst du Folgendes verwenden:
echo https://edoardottt.com/ | cariddi
Bei mehreren Zielen kannst du stattdessen eine Datei verwenden, z. B. urls.txt mit folgendem Inhalt:
https://edoardottt.com/
http://testphp.vulnweb.com/
Für Windows:
powershell.exe -Command "cat urls.txt | .\cariddi.exe" in der Eingabeaufforderungcat urls.txt | cariddi.exe mit PowerShellcariddi -version (Version ausgeben)cariddi -h (Hilfe anzeigen)cariddi -examples (Beispiele anzeigen)cat urls.txt | cariddi -intensive (Durchsuchen auch nach Subdomains, wie *.target.com)cat urls.txt | cariddi -s (Nach Geheimnissen suchen)cat urls.txt | cariddi -err (Nach Fehlern in Webseiten suchen)cat urls.txt | cariddi -e (Nach interessanten Endpunkten suchen)cat urls.txt | cariddi -info (Nach nützlichen Informationen in Webseiten suchen)cat urls.txt | cariddi -ext 2 (Nach interessanten (Stufe 2 von 7) Dateien suchen)cat urls.txt | cariddi -e -ef endpoints_file (Nach benutzerdefinierten Endpunkten suchen)cat urls.txt | cariddi -s -sf secrets_file (Nach benutzerdefinierten Geheimnissen suchen)cat urls.txt | cariddi -ie pdf,png,jpg (Diese Erweiterungen beim Scannen ignorieren)Standardmäßig werden 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 beim Scannen nach Geheimnissen, Informationen und Fehlern ignoriert.
cat urls.txt | cariddi -proxy http://127.0.0.1:8080 (Einen Proxy setzen, http und socks5 werden unterstützt)cat urls.txt | cariddi -d 2 (2 Sekunden zwischen einer gecrawlten Seite und der nächsten)cat urls.txt | cariddi -c 200 (Parallelitätsstufe auf 200 setzen)cat urls.txt | cariddi -i forum,blog,community,open (URLs ignorieren, die diese Wörter enthalten)cat urls.txt | cariddi -it ignore_file (URLs ignorieren, die mindestens eine Zeile aus der Eingabedatei enthalten)cat urls.txt | cariddi -cache (Den .cariddi_cache-Ordner als Cache verwenden)cat urls.txt | cariddi -t 5 (Timeout für die Anfragen setzen)cat urls.txt | cariddi -headers "Cookie: auth=admin;type=2;; X-Custom: customHeader"cat urls.txt | cariddi -headersfile headers.txt (Aus einer externen Datei benutzerdefinierte Header lesen)cat urls.txt | cariddi -ua "Custom User Agent" (Einen benutzerdefinierten User Agent verwenden)cat urls.txt | cariddi -plain (Nur Ergebnisse ausgeben)cat urls.txt | cariddi -ot target_name (Ergebnisse in eine txt-Datei schreiben)cat urls.txt | cariddi -oh target_name (Ergebnisse in eine HTML-Datei schreiben)cat urls.txt | cariddi -json (Ausgabe als JSON in stdout ausgeben)cat urls.txt | cariddi -sr (HTTP-Antworten speichern)cat urls.txt | cariddi -debug (Debug-Informationen während des Crawlens ausgeben)cat urls.txt | cariddi -md 3 (Maximal 3 Tiefenstufen)cariddi -h zeigt die Hilfe an.
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.
Normalerweise verwendest du Burpsuite in deinem Browser, du musst also nur das Burpsuite-Zertifikat im Browser vertrauen und schon ist es erledigt.
Um cariddi mit dem BurpSuite-Proxy zu verwenden, musst du ein paar zusätzliche Schritte durchführen.
Wenn du versuchst, cariddi mit der Option -proxy http://127.0.0.1:8080 zu verwenden, wirst du im Burpsuite-Fehlerprotokoll folgenden Fehler sehen:
Received fatal alert: bad_certificate (or something similar related to the certificate).
Damit cariddi mit Burpsuite funktioniert, musst du das Zertifikat auch auf deinem gesamten PC vertrauen, nicht nur im Browser. Hier sind die Schritte, die du befolgen musst:
Gehe zum Proxy-Tab in Burpsuite, dann zu Options. Klicke auf die CA Certificate-Schaltfläche und exportiere das Zertifikat im DER-Format
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 .
Quelle: Burp Proxy certificate in Debian/Ubuntu vertrauen
Nach diesen Schritten musst du folgendes tun, um cariddi mit Burpsuite zu verwenden:
-proxy http://127.0.0.1:8080.Detaillierte Änderungen für jede Version sind in den Versionshinweisen dokumentiert.
Erstelle einfach ein Issue oder einen Pull Request.
Bevor du einen Pull Request eröffnest, lade golangci-lint herunter und führe folgendes aus:
golangci-lint run
Wenn es keine Fehler gibt, lege los :)
Teste mit https://edoardottt.github.io/cariddi-test/
echo "https://edoardottt.github.io/cariddi-test/" | cariddi
Hilf mir, dies zu bauen!
Besonderer Dank an: go-colly, ocervell, zricethezav, projectdiscovery, tomnomnom, RegexPassive und allen Mitwirkenden.
Dieses Repository steht unter der GNU General Public License v3.0.
edoardottt.com um mich zu kontaktieren.
cat urls.txt | cariddi -rua (Bei jeder Anfrage einen zufälligen Browser-User-Agent verwenden)