关于 mitm-find-callback
mitm-find-callback 是一项通过 mitmproxy 流量日志检查支付回调问题的安全技能,适用于支付接口审查。它关注签名、状态、金额和校验和风险,并按发现项整理测试与修复建议。
主要功能
- 01检查回调签名校验问题
- 02检查支付状态和金额篡改风险
- 03检查签名碰撞与校验和生成
- 04按发现项整理影响和修复建议
适用场景
- 01审查支付回调的签名验证
- 02评估订单状态或金额篡改风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ instavm/ security-skills --skill mitm-find-callback安装后在 Claude Code 中输入/mitm-find-callback确认已加载。
详细介绍
发现支付回调漏洞
分析 mitmproxy 转储文件(log.txt),检查以下对象的支付回调问题:$ARGUMENTS
需要:当前目录中有
log.txt。如果缺少该文件,请先捕获流量:mitmdump --set flow_detail=3 2>&1 | tee log.txt
漏洞类型
1. 未验证哈希/签名
- 回调接受任意哈希值
- 存在哈希参数,但未进行验证
- 无有效签名也能更改状态
2. 状态篡改
- 将
status=failed更改为status=success - 修改
unmappedstatus参数 - 篡改交易结果
3. 金额篡改
- 在回调前修改金额
- 少付钱,却获得完整订单
- 操纵小数位
4. 签名碰撞
- 同一签名同时适用于支付和退款
- 参数重排后生成相同哈希
- 签名计算时遗漏字段
5. 校验和生成机制暴露
- 即使出错,API 也会返回校验和
- 可以生成任意校验和
- 校验和算法较弱(未加盐的 MD5/SHA1)
测试方法
# Test callback with modified status
curl -X POST "https://merchant.com/payment/callback" \
-d "txnid=12345&status=success&hash=original_hash"
# Test with invalid hash
curl -X POST "https://merchant.com/payment/callback" \
-d "txnid=12345&status=success&hash=aaaa"
流量中的危险信号
- 回调 URL 的请求中包含所有参数
- 哈希在客户端代码中可见
- JavaScript 中包含盐值/密钥
- 错误响应中包含有效校验和
输出格式
每项发现包括:
- 回调 URL:存在漏洞的端点
- 问题:可以篡改的内容
- 参数:受影响的字段
- 测试:利用方法
- 影响:免费订单、退款等
- 修复:进行适当的服务端验证
评论
支持 Markdown