声明:本文内容仅供学习和研究使用。请勿将文中技术用于非法目的,作者对任何滥用行为不承担责任。
在漏洞挖掘和安全测试过程中,信息收集是至关重要的第一步。一个好的信息收集工具可以帮助我们发现目标网站上的敏感信息,如API密钥、隐藏端点、密码凭证等,从而为后续的渗透测试提供关键线索。今天,我将向大家介绍一款功能强大的开源工具——Cariddi。
Cariddi是什么?
Cariddi是一个专为安全研究人员设计的爬虫工具,它能够从目标域名中抓取URL,并自动扫描寻找端点、密钥、令牌和其他敏感信息。与其他爬虫工具相比,Cariddi的特点是速度快、定制性强,并且专注于发现高价值的安全相关信息。
它的主要功能包括:
-
发现API端点 -
检测暴露的密钥和令牌 -
识别特定文件扩展名 -
提取敏感信息(如密码、凭证等) -
支持高并发爬取,提高效率
安装Cariddi
Cariddi是用Go语言编写的,安装非常简单。你可以通过以下方式安装:
方法一:使用Go安装(推荐)
go install github.com/edoardottt/cariddi/cmd/cariddi@latest
确保你的Go环境变量设置正确,这样安装后可以直接在终端中使用cariddi
命令。
方法二:从GitHub仓库克隆
git clone https://github.com/edoardottt/cariddi
cd cariddi
go build -o cariddi cmd/cariddi/main.go
安装完成后,可以使用help命令检查工具是否正确安装:
cariddi -h
如果能看到帮助信息,说明安装成功。
实战应用:如何使用Cariddi
Cariddi通常作为信息收集流程中的一环使用。一个典型的工作流程是:先使用子域名发现工具找到所有子域名,然后用httpx筛选出存活的子域名,最后用Cariddi对这些存活子域名进行深入爬取和分析。
下面,我们将介绍几种常见的使用场景和命令示例。
1. 发现API端点
API端点往往是安全测试的重要目标,因为它们可能包含未经充分保护的功能。使用以下命令寻找端点:
# 使用较高并发(50)和30秒超时
cat alived_Subs | cariddi -c 50 -t 30 -e > cariddi_result_endpoints
# 使用默认设置
cat alived_Subs | cariddi -e > cariddi_result_endpoints_default
参数说明:
-
-c 50
:设置50个并发请求,提高扫描速度 -
-t 30
:设置30秒的超时时间 -
-e
:启用端点扫描功能
这个命令会分析网站的JavaScript文件,寻找潜在的API端点,比如/api/users
、/admin/settings
等。这些端点可能未在网站UI中直接暴露,但却是绝佳的测试目标。
2. 查找特定文件扩展名
某些文件扩展名(如.bak、.config、.sql等)可能包含敏感信息。使用以下命令寻找这些文件:
# 寻找拓展级别为3的文件(最敏感)
cat alived_Subs | cariddi -c 50 -t 30 -ext 3 > cariddi_result_extensions
# 使用默认设置
cat alived_Subs | cariddi -ext 3 > cariddi_result_extensions_default
参数说明:
-
-ext 3
:设置文件扩展名的敏感级别(1-3,3为最敏感)
此命令会查找可能包含备份文件、配置文件、数据库转储等高价值信息的文件。
3. 发现暴露的密钥和凭证
很多开发者不小心将API密钥、访问令牌等敏感信息硬编码在前端代码中。使用以下命令发现这些秘密:
# 使用较高并发搜索秘密
cat alived_Subs | cariddi -s -c 50 -t 20 > cariddi_result_secrets
# 使用默认设置
cat alived_Subs | cariddi -s > cariddi_result_secrets_default
参数说明:
-
-s
:启用秘密扫描功能
这个命令可以识别多种格式的密钥,包括AWS密钥、Google API密钥、GitHub令牌等。这些信息一旦泄露,可能导致严重的安全问题。
4. 综合扫描:一站式解决方案
如果你想同时执行多项扫描,可以使用以下综合命令:
cat alived_Subs | cariddi -c 50 -t 30 -e -ext 1 -info -s > cariddi_result_all
参数说明:
-
-e
:扫描端点 -
-ext 1
:扫描低敏感度文件扩展名 -
-info
:包含信息文件 -
-s
:扫描秘密
这个命令将执行全面扫描,是进行初步信息收集的理想选择。
高级用法与技巧
除了基本命令外,Cariddi还提供了一些高级功能:
-
自定义输出格式:使用 -o
参数指定输出格式,支持txt、html和jsoncat alived_Subs | cariddi -e -o json > results.json
-
过滤结果:使用正则表达式过滤结果 cat alived_Subs | cariddi -e -fr "admin|config|setup"
-
自定义请求头:添加自定义HTTP头,如模拟特定浏览器 cat alived_Subs | cariddi -e -H "User-Agent: Mozilla/5.0"
-
深度控制:使用 -d
参数控制爬取深度cat alived_Subs | cariddi -e -d 3
实战建议与最佳实践
-
从小规模开始:先在少量子域名上测试,调整参数后再进行大规模扫描 -
结果验证:Cariddi可能会产生误报,务必手动验证发现的敏感信息 -
资源管理:高并发设置会占用更多系统资源,根据你的设备性能调整 -c
参数 -
与其他工具结合:将Cariddi与其他工具(如Subfinder、Amass、httpx等)结合使用,形成完整的信息收集工作流 -
合理使用:只在授权测试范围内使用此工具,尊重目标网站的使用条款和隐私政策
总结
Cariddi是一款功能强大的信息收集工具,它可以帮助安全研究人员自动发现目标网站上的敏感信息,为漏洞挖掘提供重要线索。通过本文介绍的各种命令和技巧,你可以充分利用这款工具,提高信息收集的效率和质量。
非常感谢工具作者edoardottt为安全社区贡献了这么优秀的开源工具。如果你对Cariddi感兴趣,可以访问其GitHub仓库了解更多内容,也欢迎给作者点个Star表示支持。
希望本文对你的安全测试工作有所帮助!如果你有任何问题或使用心得,欢迎在评论区交流分享。
原文始发于微信公众号(SecLab安全实验室):一键发现API密钥和敏感端点:Cariddi信息收集工具完全指南
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论