关于 mitm-find-otp
此安全技能用于分析 mitmproxy 流量记录中的 OTP 漏洞,并整理证据、影响和修复建议,适用于 OTP 流程安全测试。
主要功能
- 01检测响应和 URL 中的 OTP
- 02检查速率限制与验证绕过
- 03识别可预测或重复使用的 OTP
- 04汇总证据、影响和修复建议
适用场景
- 01审查捕获的 OTP 发送与验证请求
- 02评估暴力猜测和 OTP 泄露风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ instavm/ security-skills --skill mitm-find-otp安装后在 Claude Code 中输入/mitm-find-otp确认已加载。
详细介绍
查找 OTP 漏洞
分析 mitmproxy 转储(log.txt)中的 OTP 问题,目标为:$ARGUMENTS
要求:当前目录中必须有
log.txt。如果缺少该文件,请先捕获流量:mitmdump --set flow_detail=3 2>&1 | tee log.txt
漏洞类型
1. 响应中包含 OTP
- API 响应正文中返回 OTP
- 页面源代码 / JavaScript 中包含 OTP
- 错误消息中包含 OTP
- OTP 只能通过短信 / 电子邮件发送,绝不能出现在 API 响应中
2. 没有速率限制
- 可无限次发送 OTP
- 可无限次尝试验证
- 可以暴力破解 4-6 位 OTP
3. OTP 绕过
- 篡改响应即可绕过 OTP
- 将
verified: false改为verified: true - 接受空 OTP
- 旧 OTP 仍然有效
4. OTP 可预测
- OTP 按顺序递增
- OTP 基于时间戳生成
- 多个请求使用相同的 OTP
5. OTP 泄露
- OTP 出现在 URL 参数中(会被记录)
- 源代码中的函数名暴露 OTP
- 通过 GET 请求发送 OTP
测试方法
# Check for OTP in response
curl -X POST "https://target.com/api/send-otp" \
-d "phone=1234567890" | grep -i otp
# Test rate limiting
for i in {1..20}; do
curl -X POST "https://target.com/api/verify-otp" \
-d "phone=1234567890&otp=$i"
done
# Test with empty/invalid OTP
curl -X POST "https://target.com/api/verify-otp" \
-d "phone=1234567890&otp="
输出格式
对于每项发现:
- 端点:OTP 发送 / 验证 URL
- 问题:漏洞类型
- 证据:观察到的情况
- 利用方式:复现步骤
- 影响:账户接管风险
- 修复方案:服务端验证、速率限制
评论
支持 Markdown