BurpSuite插件:OneScan - 递归目录扫描插件
各位师傅元旦快乐!祝各位师傅新的一年挖的漏洞翻倍,收入翻倍,开心翻倍~
OneScan - 递归目录扫描插件OneScan 是一款用于递归目录扫描的 BurpSuite 插件,为发现更深层次目录下隐藏的漏洞赋能
项目地址:https://github.com/vaycore/OneScan
项目介绍OneScan 插件的思路由 One 哥提供,我负责编码将思路变现;后续有段时间我没参与开发,由 Rural.Dog 哥担下更新功能的重任;在 Github 开源之后,我继续项目的维护和升级工作。
OneScan 项目升级维护了近两年,感谢这期间师傅们积极的反馈意见和提供优化建议,让我有机会发现 OneScan 在实战中遇到的更深层次的问题,从而精准定位问题点并修复,优化使用体验上的不足;除此之外,针对师傅们反馈的特殊测试场景,新增了一些实战中必要的功能,欢迎各位师傅安装体验。
使用场景OneScan 起初是为了发现站点深层目录下的 Swagger-API 接口文档,后面随着功能完善和使用姿势的增加,目前可以完成如下测试工作:
- 发现隐藏 API 接口
- 发现敏感信息泄漏
- 测试未授权、越权漏洞
因为之前有萌新在群里问过,所以简单过一下。大佬们可跳过此步骤
前往 https://github.com/vaycore/OneScan/releases 下载插件最新版本 JAR 包:
以 BurpSuite v2024.3.1.3 版本为例。首先切换到 Extensions 标签下的 Installed 页面,然后点击 Add 按钮,准备添加 OneScan 插件:
在打开的 Load Burp extension 窗口中点击 Select file... 按钮:
选择下载完成的 OneScan 插件 JAR 包,点击打开:
然后点击窗口右下角 Next 按钮,输出如下信息,并且没有报错,即表示安装成功:
配置HaE插件注意:OneScan 加载 HaE 后,作用域也只限于 OneScan 插件(仅用于提取并展示高亮数据),不会影响到 BurpSuite 安装的 HaE 插件的正常功能
首先,前往 https://github.com/gh0stkey/HaE/releases 下载 HaE 插件最新版本 JAR 包:
切换到 OneScan 插件配置下的其他配置页面,在 HaE 配置项,点击 “选择文件...” 按钮:
选择下载完成的 HaE 插件 JAR 文件的路径:
确认后,提示 HaE 加载成功,即表示配置完成:
配置 HaE 需要注意:
- 由于 HaE 3.0 版本开始采用 Montoya API 进行开发,使用新版 HaE 需要升级你的 BurpSuite 版本(>= 2023.12.1)
- 如果您的 BurpSuite 版本低于 2023.12.1 版本,且不想升级 BurpSuite 版本,可考虑下载 https://github.com/gh0stkey/HaE/releases/tag/2.6.1 低版本 HaE 继续使用
介绍一下 OneScan 插件的常见用法
主动扫描首先,在数据看板中打开 “目录扫描” 开关:
在 BurpSuite 其他模块中,可以把请求包发送到 OneScan 插件主动扫描:
如果配置了多个字典,会激活 “使用其它字典扫描” 菜单项,可以选择使用其它字典进行主动扫描:
扫描示例如下:
注意:主动扫描的请求包,不会被主机允许/阻止列表拦截
被动扫描首先,在 OneScan 数据看板中打开 “监听代理请求”、“目录扫描” 开关:
切换到 OneScan 插件配置标签下的主机配置页面,配置主机允许/阻止列表(也就是黑/白名单,如果配置为空表示不启用黑/白名单):
然后在浏览器访问允许列表里的目标即可(规则外的流量不会扫描),示例如下:
测试未授权、越权接口数据看板中的 “移除请求头”、“替换请求头” 功能开关分别用于测试未授权和越权漏洞。如果有些目标特殊,可以使用 “请求包处理” 功能进行处理
测试未授权首先,切换到 OneScan 插件配置标签下的请求配置页面,配置要移除的请求头,示例如下:
配置完成后,在数据看板里打开 “移除请求头” 开关:
将如下请求包发送到 OneScan 插件:
结果如下所示,可以发现已自动移除 Cookie、Authorization 请求头:
实战过程中,可以打开 “监听代理请求”、“移除请求头” 开关,然后登录目标站点,过一遍站点的功能,之后在 OneScan 中检测是否存在未授权的接口。
测试越权首先,切换到 OneScan 插件配置标签下的请求配置页面,配置要替换的请求头(一般登录 A 账号的话,这里配置 B 账号的权限),示例如下:
配置完成后,在数据看板里打开 “替换请求头” 开关:
将如下请求包发送到 OneScan 插件:
结果如下所示,可以发现已自动替换 Cookie、Authorization 请求头的内容:
实战过程中,可以打开 “监听代理请求”、“替换请求头” 开关,配置账号 B 的权限,然后用 A 账号登录目标站点,过一遍站点的功能,之后在 OneScan 中检测是否存在越权信息。
请求包处理OneScan 扫描目录只发起 GET 请求,假如需要发起 POST 请求(或者需要构建特殊的请求包),就需要用到 “请求包处理” 功能了:
首先,点击 “添加” 按钮,添加一条请求包处理规则,输入规则名(例如:Post):
点击下方规则旁边的 “添加” 按钮,添加一条处理规则:
规则类型选择:“条件检查”,生效范围选择:“请求头”,正则表达式:GET /,点击确定:
继续添加第二条处理规则,规则类型选择:“匹配/替换”,生效范围选择:“请求头”,正则表达式:GET /,替换为:POST /,点击确定:
继续添加第三条处理规则,规则类型选择:“匹配/替换”,生效范围选择:“请求头”,正则表达式:\r\nContent-Type: .*\r\n,替换为:\r\n,点击确定:
继续添加最后一条处理规则,规则类型选择:“添加后缀”,生效范围选择:“请求头”,后缀值:\r\nContent-Type: application/x-www-form-urlencoded,点击确定:
添加完成后,点击确定:
新添加的规则如下:
主动扫描测试,请求包处理结果示例如下:
发送过来的请求包内容如下:
常用字典目录扫描主要就是靠字典,在递归扫描、动态变量特性的加持下,可以简化一些测试工作。这里分享一些常用的字典:
扫描隐藏接口文档字典示例如下:
/swagger.json /swagger.yaml /swagger-resources /swagger-ui.html /swagger-ui/index.html /api/swagger /api/swagger.json /api/swagger.yaml /v1/api-docs /v2/api-docs /v3/api-docs /api/v1/api-docs /api/v2/api-docs /api/v3/api-docs /doc.html扫描隐藏的 API 接口字典示例如下:
/list /users /user/1 /save /update /servers /services?wsdl /keys /actuator /jolokia/list /getConfig /file/upload /upload /env /add /create /ping扫描敏感信息泄漏字典示例如下:
/.git/config /.svn/entries /{{domain}}.zip /{{domain.main}}.zip /{{domain.name}}.zip /{{subdomain}}.zip /{{webroot}}.zip /config.json /web.config /settings.json /{{date.yy}}_{{date.MM}}_{{date.dd}}.log /Logs/{{date.yy}}_{{date.MM}}_{{date.dd}}.log /Runtime/Logs/{{date.yy}}_{{date.MM}}_{{date.dd}}.log /Application/Runtime/Logs/{{date.yy}}_{{date.MM}}_{{date.dd}}.log还可以参考 ModerRAS 师傅的文章,自行配置字典:https://miaostay.com/2023/08/Springboot%E6%B8%97%E9%80%8F%E6%80%9D%E8%B7%AF/
END- 使用过程中有 BUG 欢迎在 Github 提交 Issues,或者也可以在 QQ 群里提问(看到了会及时回复)
- 感谢各位师傅的关注和支持(如果觉得项目还不错,请给项目一个 Star 吧)
1 个帖子 - 1 位参与者