mcpField
M
mitm-find-auth

mitm-find-auth

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

关于 mitm-find-auth

用于检查 mitmproxy 流量记录中身份验证问题的安全测试技能,面向安全测试人员。它按漏洞类型和严重程度梳理可疑流程,并提供发现记录格式。

主要功能

  1. 01扫描流量中的身份验证模式
  2. 02检查重置令牌行为
  3. 03检查角色与访问控制
  4. 04分析会话和 JWT
  5. 05按严重程度整理发现

适用场景

  1. 01审查捕获的登录与退出流程
  2. 02检查密码重置请求
  3. 03验证角色是否可被修改
  4. 04检查退出后令牌是否仍有效

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/instavm/security-skills --skill mitm-find-auth

安装后在 Claude Code 中输入/mitm-find-auth确认已加载。

详细介绍

查找身份验证漏洞

分析 mitmproxy dump(log.txt),查找以下对象的身份验证问题:$ARGUMENTS

要求:当前目录中需要有 log.txt。如果文件不存在,请先捕获流量:

mitmdump --set flow_detail=3 2>&1 | tee log.txt

高价值身份验证模式(来自 783 份真实 HackerOne 漏洞赏金报告)

1. 密码重置令牌问题

漏洞赏金中的真实示例:

  • 更改邮箱后,重置链接仍未过期
  • 重置令牌可重复使用多次
  • 更改密码后,重置令牌仍然有效
  • 重置令牌可预测或按序排列

搜索模式:

grep -iE '(reset|forgot|recover|password).*token' log.txt
grep -iE 'token=[a-zA-Z0-9]{10,}' log.txt
2. 通过角色篡改提升权限

真实示例:

  • 在请求中将 role=user 改为 role=admin
  • 将 isAdmin=false 改为 isAdmin=true
  • 使用用户令牌访问管理端点
  • 以其他管理员的名义发送邀请

搜索模式:

grep -iE '(role|permission|privilege|isAdmin|is_admin|user_type|account_type)[=:]["'\'']?\w+' log.txt
3. 禁用后仍可评论或执行操作

真实示例:

  • 视频禁用评论后仍可编辑评论
  • 账号被封停后仍可执行操作
  • 权限被撤销后仍可访问资源

搜索模式:

grep -iE '(edit|update|delete|modify).*comment' log.txt
grep -iE 'action=(edit|delete|update)' log.txt
4. 文件/资源访问控制

真实示例:

  • 私有文件经转换后变为公开文件
  • 未经授权即可访问发票文档
  • 通过可预测的 URL 下载私有附件

搜索模式:

grep -iE '(download|file|document|attachment|invoice|receipt)' log.txt
grep -iE '\.(pdf|doc|xlsx?|csv)' log.txt
5. 会话/令牌漏洞

检查模式:

- Session token in URL (session_id=xxx in query params)
- JWT with weak/no signature (alg: none attack)
- Token doesn't change after password change
- Token valid after logout
- Predictable session tokens

搜索模式:

grep -iE 'session[_-]?(id|token)=' log.txt
grep -oE 'eyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]*' log.txt  # JWT

漏洞类别与严重程度

类别严重程度检查内容
未经身份验证即可访问管理员功能严重无令牌时管理端点仍返回 200
密码重置令牌滥用高不会过期/失效的令牌
权限提升高可被篡改的角色参数
会话固定高URL 中包含会话 ID、令牌不变
敏感端点缺少身份验证高未经身份验证即可访问个人身份信息/财务数据
通过身份验证上下文触发 IDOR中以其他用户身份执行操作
令牌熵弱中过短或可预测的令牌
通过篡改响应绕过身份验证中客户端身份验证检查

测试方法

第 1 步:绘制身份验证流程
# Find login/auth endpoints
grep -iE '(login|signin|authenticate|oauth|token|session)' log.txt

# Find logout endpoints
grep -iE '(logout|signout|revoke)' log.txt

# Find password flows
grep -iE '(password|reset|forgot|recover|change)' log.txt
第 2 步:分析令牌结构
# Extract bearer tokens
grep -oE 'Bearer [a-zA-Z0-9._-]+' log.txt | sort -u

# Extract cookies
grep -oE 'Cookie:.*' log.txt | head -20

# Check for JWT
grep -oE 'eyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+' log.txt
第 3 步:测试令牌有效性
# Test if token works after logout (replay attack)
curl -H "Authorization: Bearer OLD_TOKEN" "https://target.com/api/profile"

# Test with modified role
curl -X POST "https://target.com/api/update" -d '{"role":"admin"}'

# Test admin endpoint with user token
curl -H "Authorization: Bearer USER_TOKEN" "https://target.com/api/admin/users"
第 4 步:检查密码重置流程
# Test reset token reuse
curl "https://target.com/reset?token=USED_TOKEN"

# Test reset token after email change
# (token from old email should be invalid)

真实攻击场景

场景 1:通过重置令牌接管账号
1. Attacker requests password reset for victim
2. Victim changes email before using reset link
3. Old reset link still works → Attacker takes over account
场景 2:通过篡改请求提升权限
1. User captures their profile update request
2. Adds "role": "admin" or "isAdmin": true
3. Server doesn't validate, grants admin access
场景 3:通过重放操作触发 BOLA
1. User A creates comment on their post
2. User B captures edit request: POST /edit_comment?id=123
3. User B replays with different comment_id → edits User A's comment

输出格式

## AUTH Finding: [Brief Description]

**Endpoint**: `METHOD https://target.com/path`
**Type**: [Password Reset|Privilege Escalation|Session|Access Control]
**Severity**: [CRITICAL|HIGH|MEDIUM|LOW]

**Vulnerable Flow**:
1. Step one
2. Step two
3. Exploit step

**Evidence**:
[Request/response snippets]

**Impact**:
- Account takeover
- Unauthorized access
- Data exposure

**Test Command**:
curl -X METHOD 'https://target.com/...' -H '...'

**Remediation**:
- Invalidate tokens on sensitive actions
- Server-side role validation
- Rate limit sensitive endpoints

可忽略的误报

  • 有意设置为无需身份验证的公开端点
  • 只读的公开数据端点
  • 健康检查/状态端点
  • 静态资源端点
  • 对无效令牌返回通用错误的端点

评论

支持 Markdown