mcpField
M
mitm-find-otp

mitm-find-otp

github.com/instavm安全8776 次安装13 周前更新
代码仓库

关于 mitm-find-otp

此安全技能用于分析 mitmproxy 流量记录中的 OTP 漏洞,并整理证据、影响和修复建议,适用于 OTP 流程安全测试。

主要功能

  1. 01检测响应和 URL 中的 OTP
  2. 02检查速率限制与验证绕过
  3. 03识别可预测或重复使用的 OTP
  4. 04汇总证据、影响和修复建议

适用场景

  1. 01审查捕获的 OTP 发送与验证请求
  2. 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