AIFuzzing越权工具使用分享:"小白的奇幻之旅" 🚀
目录
-
前言:为什么选择AIFuzzing -
安装篇:那些年我们踩过的坑 -
配置篇:从"一脸懵逼"到"恍然大悟" -
实战篇:当AI遇上越权检测 -
问题解决篇:常见问题与"救命稻草" -
进阶技巧:从"会用"到"玩转" -
总结:我的AIFuzzing使用心得 -
附录
前言:为什么选择AIFuzzing
"曾经,我以为越权检测就是改改Cookie那么简单,直到我遇见了AIFuzzing..."
作为一名普通的安全爱好者,我在日常工作中常常需要投入大量时间和精力进行传统的越权漏洞检测。这种重复性、耗时的工作不仅效率低下,还容易让人分散注意力,无法专注于更具价值的任务。为了改变这一现状,我开发了一款名为 AIFuzzing 的工具,希望通过自动化赋能,将越权检测变得更高效,让我们能够腾出更多精力,专注于挖掘更深层次的安全问题。
下载地址
https://github.com/darkfiv/AIFuzzing
传统越权检测的痛点
-
手动检测效率低,一个个接口替换Cookie费时费力 -
越权漏洞隐蔽,很多时候需要人工分析判断 -
难以智能分析响应内容,尤其是大量数据时容易遗漏敏感信息 -
处理大响应体时容易崩溃或性能低下,10MB+的响应往往直接放弃
AIFuzzing的亮点
-
智能敏感数据识别:内置中国手机号、身份证号、邮箱等多种正则匹配,一键检测泄露风险 -
强大的相似度计算:基于Levenshtein距离算法,智能处理动态字段,准确识别越权风险 -
大响应体流式处理:通过 streamLargeBodies
配置,轻松处理大型JSON响应,性能提升显著 -
AI辅助分析:接入多种大模型(DeepSeek/GPT/千问),对复杂响应进行智能分析,降低漏报率 -
内置规则优先检测,帮你减少AI Token消耗:流程中,先基于内置规则检索未授权/越权漏洞,都未检测到,才会扔给AI检测,做到AI检测兜底,减少token消耗,更符合日常使用需求!
💡 工具闭环:将被动代理、主动扫描、AI分析三位一体,实现从流量捕获到漏洞确认的全流程自动化。
安装篇:那些年我们踩过的坑
1. 环境准备
-
系统要求:支持Windows 10/11、Linux(推荐Ubuntu 20.04+)、macOS 10.15+
2. 安装过程
二进制安装(推荐)
# 下载最新版本wget https://github.com/darkfiv/AIFuzzing/releases/latest/download/AIFuzzingchmod +x AIFuzzing./AIFuzzing --version
### **3. 常见问题与解决**1. **拦截不到流量**: - 确保正确安装了mitmproxy证书 - 运行以下命令安装证书: ```bash# 生成证书 mkdir -p ~/.mitmproxy go-mitmproxy //默认生成证书到~/.mitmproxy目录下# macOS信任证书 sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.mitmproxy/mitmproxy-ca-cert.pem# Windows则需要导入证书到"受信任的根证书颁发机构"
-
代理启动失败: -
检查端口占用: lsof -i:9080
-
尝试更改配置文件中的端口号
-
配置篇:从"一脸懵逼"到"恍然大悟"
1. 配置文件解析
config.json
是AIFuzzing的核心配置文件,以下是重要配置项解析:
{"AI": "deepseek", // 使用的AI模型,支持deepseek/gpt/qianwen等"proxy": {"port": 9080, // 代理端口"streamLargeBodies": 102400// 大响应体阈值(字节) },"unauthorizedScan": {"enabled": true, // 启用未授权扫描"removeHeaders": [ // 移除的认证头"Authorization", "Cookie", "Token", "Jwt","X-Auth-Token", "X-Csrf-Token", "Usertoken" ],"similarityThreshold": 0.5, // 相似度阈值"sensitiveDataPatterns": {"enabled": true,"jsonPatterns": [ // 敏感数据匹配规则 {"name": "phone","pattern": "(?:[^\w]|^)((?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8})(?:[^\w]|$)","description": "中国手机号码" } ] },"useConfidenceScore": true, // 使用置信度评分"highConfidenceScore": 60, // 高置信度阈值"confidenceRules": [ // 置信度规则 {"name": "contains_sensitive_data","weight": 55 }, {"name": "successful_status_code","weight": 15 } ] },"privilegeEscalationScan": { // 越权检测配置"enabled": true,"similarityThreshold": 0.6,"paramPatterns": [] // 参数匹配模式 }}
2. 实战配置技巧
-
敏感信息检测优化:
"sensitiveDataPatterns": {"jsonPatterns": [ {"name": "custom_id","pattern": "your-custom-regex","description": "自定义敏感数据" } ]}
-
性能调优:
"performance": {"maxConcurrentScans": 10, // 并发扫描数"scanTimeout": 15, // 扫描超时时间(秒)"requestTimeout": 5// 请求超时时间(秒)}
-
大响应处理:
"proxy": {"streamLargeBodies": 102400// 超过100KB的响应将流式处理}
-
越权检测中对包含了指定参数的流量拦截:
"privilegeEscalationScan": {"enabled": true,"similarityThreshold": 0.6,"paramPatterns": [ //支持正则匹配"userid=", "id=" ]}
3.AIFuzzing 工具运行图
以下是AIFuzzing工具的核心工作流程图和功能示意图,帮助新用户快速理解工具原理和使用方法。
1. 系统架构图
┌────────────────┐ ┌────────────────┐ ┌────────────────┐│ │ │ │ │ ││ 浏览器/ │ │ AIFuzzing │ │ ││ BurpSuite │────▶ 代理服务器 │────▶ 目标应用 ││ │ │ (127.0.0.1: │ │ ││ │ │ 9080) │ │ │└────────────────┘ └────────────────┘ └────────────────┘ │ │ 拦截请求/响应 ▼┌────────────────┐ ┌────────────────┐ ┌────────────────┐│ │ │ │ │ ││ Web控制台 │◀───┤ 越权/未授权 │ │ AI智能分析 ││ (127.0.0.1: │ │ 检测引擎 │────▶ 模块 ││ 8222) │ │ │ │ ││ │ │ │ │ │└────────────────┘ └────────────────┘ └────────────────┘
2. 未授权访问检测流程图
┌─────────────┐│ 捕获原始请求 │└──────┬──────┘ │ ▼┌─────────────────────┐│ 记录原始请求及响应 ││ (请求A + 响应A) │└──────┬──────────────┘ │ ▼┌─────────────────────┐│ 移除认证头 ││ (Authorization, ││ Cookie, Token等) │└──────┬──────────────┘ │ ▼┌─────────────────────┐│ 重放请求获取新响应 ││ (响应B) │└──────┬──────────────┘ │ ▼ ┌───┴───┐ │判断响应│ │状态码 │ └───┬───┘ │ ┌────┴────┐ │ │ ▼ ▼┌─────┐ ┌─────┐│成功 │ │失败 ││2xx │ │4xx/ ││ │ │5xx │└──┬──┘ └──┬──┘ │ │ ▼ ▼┌─────────┐ ┌─────────┐│继续检测 │ │结束检测 │└────┬────┘ └─────────┘ │ ▼┌──────────────────┐│ 检测敏感数据 ││ (手机号/身份证等) │└──────┬───────────┘ │ ▼┌──────────────────┐│ 计算响应相似度 │└──────┬───────────┘ │ ▼┌──────────────────┐│ 计算置信度分数 │└──────┬───────────┘ │ ▼ ┌────┴─────┐ │ │ ▼ ▼ ▼┌─────────┐ ┌─────────┐ ┌─────────┐│ 高置信度 │ │ 中置信度 │ │ 低置信度 ││ (漏洞) │ │ (可疑) │ │ (安全) │└─────────┘ └─────────┘ └─────────┘
3. 大响应体处理流程
┌──────────────┐│ 接收响应体 │└──────┬───────┘ │ ▼ ┌───┴───┐ │检查大小│ └───┬───┘ │ ┌─────┴──────┐ │ │ ▼ ▼┌────────────┐ ┌─────────────┐│ <=100KB │ │ >100KB ││ 普通处理 │ │ 大响应体处理 │└─────┬──────┘ └──────┬──────┘ │ │ │ ┌──────┴──────┐ │ │ 流式处理 │ │ │(分段扫描) │ │ └──────┬──────┘ │ │ ▼ ▼┌─────────────────────────────┐│ 敏感数据扫描 │└─────────────┬───────────────┘ │ ▼┌─────────────────────────────┐│ 相似度计算 │└─────────────┬───────────────┘ │ ▼┌─────────────────────────────┐│ 结果输出 │└─────────────────────────────┘
4. 工具部署与使用流程
┌──────────────┐│ 下载AIFuzzing │└──────┬───────┘ │ ▼┌──────────────┐│ 安装证书 │└──────┬───────┘ │ ▼┌──────────────┐│ 调整配置文件 │└──────┬───────┘ │ ▼┌──────────────┐│ 启动代理服务 │└──────┬───────┘ │ ▼┌──────────────────────┐│ 配置浏览器/Burp代理 │└──────┬───────────────┘ │ ▼┌──────────────┐│ 访问目标站点 │└──────┬───────┘ │ ▼┌────────────────────────┐│ 查看Web界面检测结果 ││ (http://127.0.0.1:8222) │└────────────────────────┘
5. 实际使用效果图
下面是AIFuzzing工具的实际使用界面截图示意:
5.1 Web控制台界面
┌───────────────────────── AIFuzzing Web控制台 ─────────────────────────┐│ ││ [统计] 总请求: 152 | 漏洞: 12 | 可疑: 8 | 安全: 132 ││ ││ ┌─────────┬───────────┬─────────────┬───────────┬──────────────────┐ ││ │ 状态 │ 方法 │ URL │ 漏洞类型 │ 置信度 │ ││ ├─────────┼───────────┼─────────────┼───────────┼──────────────────┤ ││ │ 漏洞 │ GET │ /api/users │ 未授权 │ 高 (95%) │ ││ │ 漏洞 │ POST │ /api/orders │ 越权 │ 高 (87%) │ ││ │ 可疑 │ GET │ /api/items │ 未授权 │ 中 (52%) │ ││ │ 安全 │ GET │ /api/public │ - │ 低 (23%) │ ││ └─────────┴───────────┴─────────────┴───────────┴──────────────────┘ ││ ││ 【详情】选中记录: GET /api/users ││ ┌─────────────────────────────────────────────────────────────────┐ ││ │ 原始请求: │ ││ │ GET /api/users HTTP/1.1 │ ││ │ Host: example.com │ ││ │ Authorization: Bearer eyJhbGci... │ ││ │ │ ││ │ 未授权请求: │ ││ │ GET /api/users HTTP/1.1 │ ││ │ Host: example.com │ ││ │ │ ││ │ 检测到的敏感数据: │ ││ │ - 手机号: 13800138000, 15912345678 │ ││ │ - 身份证: 3305***********1234 │ ││ │ │ ││ │ AI分析结果: │ ││ │ "原因: 移除认证头后仍可访问所有用户敏感信息,确认存在未授权访问" │ ││ └─────────────────────────────────────────────────────────────────┘ ││ ││ [操作] 生成报告 | 清除数据 | 暂停扫描 | 配置 │└───────────────────────────────────────────────────────────────────────┘
5.2 漏洞详情页面
┌───────────────────── 漏洞详情: GET /api/users ─────────────────────────┐│ ││ 【基本信息】 ││ 漏洞类型: 未授权访问 检测时间: 2023-06-12 15:30:45 ││ 目标URL: https://example.com/api/users ││ 置信度: 高 (95%) 状态码: 200 OK ││ ││ 【漏洞详情】 ││ 移除认证头后仍可正常访问接口,并返回包含敏感信息的完整用户列表。 ││ ││ 【敏感数据发现】 ││ 类型 数量 样例 ││ 手机号 23 138****8000, 159****5678 ││ 身份证 8 3305*********1234 ││ 邮箱 15 u***@example.com ││ ││ 【AI分析结果】 ││ "通过分析请求和响应内容,移除认证头后API仍返回与原始请求相同的敏感数据, ││ 包含多个用户的个人信息。确认存在严重的未授权访问风险,建议立即修复。" ││ ││ 【相似度评分】 ││ 响应相似度: 98% │└────────────────────────────────────────────────────────────────────────┘
6. 配置优化流程图
┌─────────────┐│ 基础配置 │└──────┬──────┘ │ ▼┌────────────────────────────┐│ 启用/禁用功能 │├────────────────────────────┤│ - unauthorizedScan.enabled ││ - privilegeEscalationScan. ││ enabled │└──────────┬─────────────────┘ │ ▼┌────────────────────────────┐│ 敏感数据检测配置 │├────────────────────────────┤│ - 添加自定义规则 ││ - 调整内置规则 │└──────────┬─────────────────┘ │ ▼┌────────────────────────────┐│ 评分配置 │├────────────────────────────┤│ - 调整相似度阈值 ││ - 配置置信度规则及权重 │└──────────┬─────────────────┘ │ ▼┌────────────────────────────┐│ 性能优化 │├────────────────────────────┤│ - 调整并发数 ││ - 设置超时时间 ││ - 配置大响应体处理 │└────────────────────────────┘
实战篇
1. 基础使用
-
启动AIFuzzing代理: ./AIFuzzing -version
-
配置浏览器或Burp Suite代理为: 127.0.0.1:9080
-
访问目标应用,AIFuzzing会自动: -
捕获请求 -
去除认证头 -
重放请求 -
分析响应 -
智能判断是否存在越权/未授权
-
2. 工具实战案例分享
举例场景皆为真实场景漏洞挖掘,不要错过~【实战挖掘,内部分享过的图片存在水印,只能厚码了】
案例一:某src后台接口未授权访问
某src存管理系统测试中,AIFuzzing自动捕获了一个API请求:
GET /admin/api/v1/suppliers?vcode=1 HTTP/1.1Host: example.comCookie: xxx
AIFuzzing自动移除Cookie头后,仍能获取供应商信息!工具自动从返回中识别出了手机号等敏感信息,并给出高置信度提示,通过遍历vcode,获取的4000+供应商信息包括姓名、手机号,中危一枚。
注:使用过程中,内置规则只放置了常用的cookie等鉴权字段,因业务习惯不同,鉴权字段命名方式不一,大家根据自己遇到的实际应用场景添加即可。
案例二:某src密文id泄漏导致大量用户信息泄漏包括姓名、身份证、电话等
GET /admin/api/v1/getLinkmans?Id=xe0c97fe3fc617d83e2b4e94bf7a5aed HTTP/1.1Host: example.comT-token: xxx
AIFuzzing自动移除Token头后,仍能获取用户常旅信息!工具自动从返回中识别出了手机号、身份证等敏感信息,并给出高置信度提示,但是实际数据查询参数是根据这个id来的,我们可以发现这个id并非传统明文数字,可直接递增遍历,那么,接下来就需要看能否逆向拿到这个密文构造,实际尝试后发现为后端直接从token取参数后加密直接返回,无法构造,只能去看有没有别的地方泄漏了【可以通过hae配置正则规则,快速对类似的参数进行捕捉】,由于本人对该src业务有了解,很快便发现某业务线用户评论处,泄漏了大量密文id【这里也侧面反证了如果对业务不熟,可能很多漏洞放在你面前你也找不到】。
泄漏大量密文id如下:
图有点糊,将就看看吧,拿到密文id,直接在数据包替换即可,成功越权查看用户信息包括姓名、身份证等,如下:
最终该漏洞拿到了严重,并且,由于该业务存在多数地方鉴权用到了这个密文id,利用该工具,配置好B账号token后,快速刷了一波通用,由于src规则限制,只收了三个,三个月后才收录,后面继续交哈哈哈哈哈哈。
案例三:某src供应商平台存在越权,导致大量用户信息泄漏
这是个供应商分销平台,注册门槛比较低,手里已经有俩账号了,于是快速登陆B账号,并把其Usertoken拿下来进行配置,用于越权检测,如下:
配置好,接下来就是去功能页面点点点了,点了一番后,工具扫描如下:
POST /admin/api/v1/xxx? HTTP/1.1Host: example.comUserToken: xxxContent-type:application/json{"id":xxx}
通过遍历id可获取大量订单信息包括姓名、电话、地址,由于参数可直接遍历,最终获得了高危一枚
上述案例只是使用过程中发现的一小部分而已,希望师傅们能够用起来,一定会有所收获的!
案例四:AI智能分析
说实话,这个工具在日常使用过程中,目前内置的规则已经能适用很多场景了,还暂未发现经过未授权/越权内置规则检测不到后,AI去发现了越权漏洞的场景,可能是作者用的还不到位吧,所以也希望更多的师傅用起来,每个人遇到的实际场景不同,这样也能双向赋能,更好的优化这款工具。
问题解决篇:常见问题与"救命稻草"
1. 流量拦截问题
-
症状:工具启动但没有捕获到流量 -
解决方案: -
确认证书安装: cat ~/.mitmproxy/mitmproxy-ca-cert.pem
-
检查代理端口: curl -x 127.0.0.1:9080 http://example.com
-
开启详细日志: ./AIFuzzing --log debug
-
2. 性能问题
-
症状:内存占用过高或扫描缓慢 -
解决方案: "performance": {"maxConcurrentScans": 5, // 降低并发数"scanTimeout": 10// 缩短超时时间},"proxy": {"streamLargeBodies": 51200// 降低大响应体阈值}
3. 误报问题
-
症状:大量误报或漏报【可以先看看是不是自己规则配置的有问题,如果配置正确,发现还是有大量误报,可以反馈给作者】 -
解决方案: -
调整相似度阈值: "similarityThreshold": 0.7// 提高阈值减少误报
-
优化置信度规则: "confidenceRules": [ {"name": "contains_sensitive_data","weight": 65// 提高敏感数据权重 }]
-
添加白名单: "respBodyBWhiteList": ["权限不足", "请先登录", "无权限操作"]
-
进阶技巧:从"会用"到"玩转"
1. 自定义规则进阶
创建针对业务场景的自定义敏感数据规则:
"jsonPatterns": [ {"name": "custom_id","pattern": ""userId"\s*:\s*"([A-Z0-9]{32})"","description": "自定义用户ID格式" }, {"name": "bank_card","pattern": "(\d{16,19})","description": "银行卡号" }]
2. AI模型调优
尝试不同AI模型,针对特定场景选择最优解:
{"AI": "deepseek", // 默认使用DeepSeek"apiKeys": {"deepseek": "sk-your-key","gpt": "sk-your-openai-key","qianwen": "sk-your-qianwen-key" }}
3. 批量测试技巧
配置多个用户Token进行批量越权测试:
"headers2": {"Usertoken": "78X8DCD3QwOf5UTcQXBWjA", // 用户B的Token"X-App-Token": "7372fb78b00a382a61a48d317e228403"// 用户B的Token}
4. 与其他工具联动
将AIFuzzing与Burp Suite配合使用:
-
在Burp中设置上游代理为AIFuzzing(127.0.0.1:9080) -
使用Burp捕获和修改请求 -
AIFuzzing自动进行未授权和越权检测 -
在AIFuzzing的Web界面(http://127.0.0.1:8222)查看结果
总结:我的AIFuzzing使用心得
在使用AIFuzzing进行安全测试的过程中,我收获颇丰:
-
效率提升显著:以往手动测试一个中型系统可能需要1-2天,现在只需半天,效率翻倍。
-
发现隐蔽漏洞:AI分析能力帮助发现了许多传统工具难以检测的隐蔽越权问题,尤其是在复杂业务逻辑中。
-
大响应处理优势:流式处理机制让我能够检测大型API响应,不再受限于内存瓶颈,这在处理数据密集型应用时极为重要。
-
智能分析减轻负担:AI辅助分析大大减少了人工审查的工作量,低置信度的结果往往可以直接忽略,而高置信度的结果准确率超过90%。
-
灵活配置适应场景:通过调整配置,AIFuzzing可以适应从简单Web应用到复杂企业系统的各种场景,具有极强的适应性。
如果你正在为越权检测效率低下而烦恼,不妨试试AIFuzzing,它可能会像改变我的工作方式一样,也为你带来惊喜。
附录
-
GitHub地址:https://github.com/darkfiv/AIFuzzing
-
安全免责声明:本工具仅供安全研究和授权测试使用,请勿用于非法用途,使用不当造成的后果由使用者自行承担。
🌟 如果你觉得这款工具有帮助,别忘了在GitHub上点个⭐支持作者!也欢迎提交PR贡献代码,一起让这个工具变得更强大!
作者有话说:这款工具诞生于实际安全测试的需求,集合了我多年的经验和对AI技术的探索。希望它能成为你安全测试工具箱中的一把"瑞士军刀",解决越权检测中的各种难题。如有使用问题或建议,欢迎在GitHub上提issue交流!
用于拉少侠们进团队交流群
原文始发于微信公众号(东方隐侠安全团队):别等了,用AIFuzzing越权工具去捡洞吧!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论