

ドメインのリストを取得し、URLをクロールしてエンドポイント、シークレット、APIキー、ファイル拡張子、トークンなどをスキャンします
edoardottt 💙 によってコード化されました
Twitterで共有!
インストール • 使い方 • はじめよう • 変更履歴 • 貢献 • ライセンス
brew install cariddi
sudo snap install cariddi
go install -v github.com/edoardottt/cariddi/cmd/cariddi@latest
pacman -Syu cariddi
nix-shell -p cariddi
Go (>=1.24.0) が必要です
git clone https://github.com/edoardottt/cariddi.git
cd cariddi
go get ./...
make linux # (インストール)
make unlinux # (アンインストール)
ワンライナー: git clone https://github.com/edoardottt/cariddi.git && cd cariddi && go get ./... && make linux
実行ファイルは cariddi フォルダ内でのみ動作することに注意してください。
git clone https://github.com/edoardottt/cariddi.git
cd cariddi
go get ./...
.\make.bat windows # (インストール)
.\make.bat unwindows # (アンインストール)
単一のターゲットのみをスキャンする場合は以下を使用できます。
echo https://edoardottt.com/ | cariddi
複数のターゲットがある場合は、代わりにファイルを使用できます(例:urls.txt に以下を含める)。
https://edoardottt.com/
http://testphp.vulnweb.com/
Windows の場合:
powershell.exe -Command "cat urls.txt | .\cariddi.exe" を使用cat urls.txt | cariddi.exe を使用cariddi -version (バージョンを表示)cariddi -h (ヘルプを表示)cariddi -examples (使用例を表示)cat urls.txt | cariddi -intensive (サブドメインも含めてクロール、*.target.com と同じ)cat urls.txt | cariddi -s (シークレットを検索)cat urls.txt | cariddi -err (ウェブサイトのエラーを検索)cat urls.txt | cariddi -e (おいしいエンドポイントを検索)cat urls.txt | cariddi -info (ウェブサイトの有用な情報を検索)cat urls.txt | cariddi -ext 2 (おいしい(レベル2/7)ファイルを検索)cat urls.txt | cariddi -e -ef endpoints_file (カスタムエンドポイントを検索)cat urls.txt | cariddi -s -sf secrets_file (カスタムシークレットを検索)cat urls.txt | cariddi -ie pdf,png,jpg (これらの拡張子をスキャンから除外)デフォルト: 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 はシークレット、情報、エラーのスキャン時に無視されます。
cat urls.txt | cariddi -proxy http://127.0.0.1:8080 (プロキシを設定、http および socks5 対応)cat urls.txt | cariddi -d 2 (クロール間の遅延を2秒に設定)cat urls.txt | cariddi -c 200 (同時実行レベルを200に設定)cat urls.txt | cariddi -i forum,blog,community,open (これらの単語を含むURLを無視)cat urls.txt | cariddi -it ignore_file (入力ファイルの少なくとも1行を含むURLを無視)cat urls.txt | cariddi -cache (.cariddi_cache フォルダをキャッシュとして使用)cat urls.txt | cariddi -t 5 (リクエストのタイムアウトを設定)cat urls.txt | cariddi -headers "Cookie: auth=admin;type=2;; X-Custom: customHeader"cat urls.txt | cariddi -headersfile headers.txt (外部ファイルからカスタムヘッダーを読み込む)cat urls.txt | cariddi -ua "Custom User Agent" (カスタムユーザーエージェントを使用)cat urls.txt | cariddi -rua (毎回ランダムなブラウザユーザーエージェントを使用)cat urls.txt | cariddi -plain (結果のみ表示)cat urls.txt | cariddi -ot target_name (結果をTXTファイルに出力)cat urls.txt | cariddi -oh target_name (結果をHTMLファイルに出力)cat urls.txt | cariddi -json (出力をJSON形式でstdoutに表示)cat urls.txt | cariddi -sr (HTTPレスポンスを保存)cat urls.txt | cariddi -debug (クロール中にデバッグ情報を表示)cat urls.txt | cariddi -md 3 (最大3レベルの深さ)cariddi -h でヘルプが表示されます。
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.
通常、ブラウザ内で Burpsuite を使用する場合、ブラウザで Burpsuite の証明書を信頼するだけで完了です。
cariddi を BurpSuite プロキシで使用するには、さらにいくつかの手順が必要です。
オプション -proxy http://127.0.0.1:8080 を指定して cariddi を使用しようとすると、burpsuite のエラーログセクションに次のエラーが表示されます。
Received fatal alert: bad_certificate (または証明書に関連する同様のエラー)
cariddi を Burpsuite で正常に動作させるには、ブラウザだけでなく、PC全体で証明書を信頼する必要があります。以下の手順に従ってください。
Burpsuite の Proxy タブに移動し、Options をクリックします。CA Certificate ボタンをクリックして、証明書を 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 .
出典: Trust Burp Proxy certificate in Debian/Ubuntu
これらの手順の後、cariddi を Burpsuite で使用するには、以下を行う必要があります。
-proxy http://127.0.0.1:8080 を指定して cariddi を使用します。各リリースの詳細な変更点はリリースノートに記載されています。
プルリクエストを開く前に、golangci-lint をダウンロードして実行してください。
golangci-lint run
エラーがなければ、進んでください :)
https://edoardottt.github.io/cariddi-test/ を使用してテストします。
echo "https://edoardottt.github.io/cariddi-test/" | cariddi
これを構築するのを手伝ってください!
特別な感謝: go-colly, ocervell, zricethezav, projectdiscovery, tomnomnom, RegexPassive およびすべての貢献者に感謝します。
このリポジトリは GNU General Public License v3.0 の下で提供されています。
edoardottt.com から連絡できます。