edoardottt/cariddi

GitHub: edoardottt/cariddi

一款基于 Go 的轻量级 Web 爬虫工具,能够在递归爬取目标站点的同时自动检测泄露的密钥、Token、敏感端点和高价值文件。

Stars: 3330 | Forks: 294


Take a list of domains, crawl urls and scan for endpoints, secrets, api keys, file extensions, tokens and more

go-report-card workflows
Coded with 💙 by edoardottt
Share on Twitter!

InstallUsageGet StartedChangelogContributingLicense

## 安装说明 📡 #### Homebrew ``` brew install cariddi ``` #### Snap ``` sudo snap install cariddi ``` #### Golang ``` go install -v github.com/edoardottt/cariddi/cmd/cariddi@latest ``` #### Pacman ``` pacman -Syu cariddi ``` #### NixOS ``` nix-shell -p cariddi ``` #### 从源码构建 你需要 [Go](https://go.dev/) (>=1.24.0)
在 Linux 和 Windows 上从源码构建 #### Linux ``` git clone https://github.com/edoardottt/cariddi.git cd cariddi go get ./... make linux # (to install) make unlinux # (to uninstall) ``` 一行命令:`git clone https://github.com/edoardottt/cariddi.git && cd cariddi && go get ./... && make linux` #### Windows 注意,该可执行文件仅在 cariddi 文件夹中有效。 ``` git clone https://github.com/edoardottt/cariddi.git cd cariddi go get ./... .\make.bat windows # (to install) .\make.bat unwindows # (to uninstall) ```
## 使用方法 💡 如果你只想扫描单个目标,可以使用 ``` echo https://edoardottt.com/ | cariddi ``` 如果有多个目标,你可以改为使用一个文件,例如包含以下内容的 urls.txt: ``` https://edoardottt.com/ http://testphp.vulnweb.com/ ``` 对于 Windows: - 在命令提示符中使用 `powershell.exe -Command "cat urls.txt | .\cariddi.exe"` - 或者在使用 PowerShell 时直接使用 `cat urls.txt | cariddi.exe` ### 基础选项 - `cariddi -version` (打印版本) - `cariddi -h` (打印帮助信息) - `cariddi -examples` (打印示例) ### 扫描选项 - `cat urls.txt | cariddi -intensive` (同时爬取搜索子域名,与 `*.target.com` 效果相同) - `cat urls.txt | cariddi -s` (猎取敏感信息/secrets) - `cat urls.txt | cariddi -err` (猎取网站中的错误信息) - `cat urls.txt | cariddi -e` (猎取高价值端点/juicy endpoints) - `cat urls.txt | cariddi -info` (猎取网站中的有用信息) - `cat urls.txt | cariddi -ext 2` (猎取高价值(7级中的第2级)文件) - `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` (从外部文件读取自定义 Headers) - `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 格式在标准输出打印结果) - `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. ```
点击了解 如何将 cariddi 与 Burpsuite 结合使用 通常你在浏览器中使用 Burpsuite,因此只需在浏览器中信任 Burpsuite 的证书即可。 为了将 cariddi 与 BurpSuite 代理结合使用,你需要执行一些额外的步骤。 如果你尝试将 cariddi 与 `-proxy http://127.0.0.1:8080` 选项一起使用,你会在 Burpsuite 的错误日志部分发现此错误: ``` Received fatal alert: bad_certificate (or something similar related to the certificate). ``` 为了使 cariddi 能与 Burpsuite 正常配合使用,你必须在整台电脑上信任该证书,而不仅仅是在浏览器中。以下是你必须遵循的步骤: 转到 Bupsuite 的 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 结合使用,你需要: 1. 打开 Burpsuite,确保代理正在监听。 2. 使用带有 `-proxy http://127.0.0.1:8080` 标志的 cariddi。 3. 你将看到请求和响应被记录在 Burpsuite 中。
## 更新日志 📌 每个版本的详细更改都记录在[发行说明](https://github.com/edoardottt/cariddi/releases)中。 ## 贡献 🛠 只需提交一个 [issue](https://github.com/edoardottt/cariddi/issues)/[pull request](https://github.com/edoardottt/cariddi/pulls)。 在提交 pull request 之前,请下载 [golangci-lint](https://golangci-lint.run/usage/install/) 并运行 ``` golangci-lint run ``` 如果没有错误,就可以继续了 :) 使用 [https://edoardottt.github.io/cariddi-test/](https://edoardottt.github.io/cariddi-test/) 进行测试 ``` echo "https://edoardottt.github.io/cariddi-test/" | cariddi ``` **请帮助我构建它!** 特别感谢:[go-colly](http://go-colly.org/)、[ocervell](https://github.com/ocervell)、[zricethezav](https://github.com/gitleaks/gitleaks/blob/master/config/gitleaks.toml)、[projectdiscovery](https://github.com/projectdiscovery/nuclei-templates/tree/master/file/keys)、[tomnomnom](https://github.com/tomnomnom/gf/tree/master/examples)、[RegexPassive](https://github.com/hahwul/RegexPassive) 以及[所有贡献者](https://github.com/edoardottt/cariddi/graphs/contributors)。 ## 许可证 📝 本仓库遵循 [GNU General Public License v3.0](https://github.com/edoardottt/cariddi/blob/main/LICENSE)。 访问 [edoardottt.com](https://edoardottt.com/) 联系我。
标签:API密钥检测, Bug Bounty工具, EVTX分析, Go语言, LLM应用, Token发现, Web安全, 实时处理, 密码管理, 开源安全工具, 情报收集, 文件扩展名扫描, 日志审计, 机密数据扫描, 漏洞研究, 爬虫安全, 程序破解, 端点扫描, 网络安全, 蓝队分析, 输入验证, 逆向工程平台, 隐私保护