
输入域名列表,爬取 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.execariddi -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(忽略包含输入文件中至少一行的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"(使用自定义 User Agent)cat urls.txt | cariddi -rua(每个请求使用随机浏览器 User Agent)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
并发级别。(默认值 20)
-cache
使用 .cariddi_cache 文件夹作为缓存。
-d int
爬取页面间的延迟。
-debug
爬取时打印调试信息。
-e 寻找有价值的端点。
-ef string
使用外部文件(txt,每行一个)来定义端点查找的自定义参数。
-err
寻找网站中的错误。
-examples
打印示例。
-ext int
寻找有价值的文件扩展名。整数从1(有价值)到7(不太有价值)。
-h 打印帮助信息。
-headers string
为每个请求使用自定义请求头,例如 -headers "Cookie: auth=yes;;Client: type=2"。
-headersfile string
从外部文件读取自定义请求头(格式同 headers 标志)。
-json
以 JSON 格式输出到 stdout。
-md
爬虫从初始目标 URL 开始跟随的最大深度级别。
-i string
忽略包含该数组中至少一个元素的 URL。
-ie value
扫描时忽略的扩展名列表(逗号分隔)。
-info
在网站中寻找有用信息。
-intensive
爬取时搜索匹配二级域名的资源。
-it string
忽略包含该文件中至少一行的 URL。
-oh string
将输出写入 HTML 文件。
-ot string
将输出写入 TXT 文件。
-plain
仅打印结果。
-proxy string
设置要使用的代理(支持 http 和 socks5)。
-rua
每个请求使用随机浏览器 User Agent。
-s 寻找密钥。
-sf string
使用外部文件(txt,每行一个)来定义密钥查找的自定义正则表达式。
-sr
存储 HTTP 响应。
-t int
设置请求超时时间。(默认值 10)
-ua string
使用自定义 User Agent。
-version
输出版本。
通常你会通过浏览器使用 Burpsuite,只需在浏览器中信任 Burpsuite 的证书即可。
为了在 Burpsuite 代理中使用 cariddi,你需要进行一些额外步骤。
如果你尝试使用选项 -proxy http://127.0.0.1:8080 运行 cariddi,会在 Burpsuite 的错误日志部分看到如下错误:
Received fatal alert: bad_certificate(或类似与证书相关的错误)。
为使 cariddi 与 Burpsuite 正常工作,你还需要在你的整个计算机(不仅是浏览器)上信任该证书。以下是需要遵循的步骤:
在 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 .
来源:在 Debian/Ubuntu 中信任 Burp 代理证书
完成这些步骤后,要使用 cariddi 与 Burpsuite,你需要:
-proxy http://127.0.0.1:8080 运行 cariddi。每个版本的详细更改记录在发行说明中。
只需提交一个 issue/pull request。
在提交 pull request 之前,请下载 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 联系我。