Home

Awesome

OneScan

OneScan是递归目录扫描的BurpSuite插件。

插件介绍

OneScan插件的思路由One哥提供,我负责将One哥的思路进行编码变现。插件起初是为了发现站点的 Swagger-API 文档页面,例如有些站点将 Swagger-API 文档存放在当前API接口同路由下(或者更深层次目录),使用OneScan插件可以快速发现这类页面和接口

参与开发人员:

简单示例

例如配置Payload字典如下:

/api-docs
/{{domain.name}}.zip

目标站点访问:https://www.xxxxxx.com/a/b/c/xxx.min.js ,插件会自动扫描如下的路径:

https://www.xxxxxx.com/api-docs
https://www.xxxxxx.com/xxxxxx.zip
https://www.xxxxxx.com/a/api-docs
https://www.xxxxxx.com/a/xxxxxx.zip
https://www.xxxxxx.com/a/b/api-docs
https://www.xxxxxx.com/a/b/xxxxxx.zip
https://www.xxxxxx.com/a/b/c/api-docs
https://www.xxxxxx.com/a/b/c/xxxxxx.zip

插件安装

BurpSuite 安装流程如下(不同版本可能有所差异):

Extender -> Extensions -> Add -> Select File -> Next
Extensions -> Installed -> Add -> Select File -> Next

流程结束后,打印如下信息表示插件安装完成(需要在 Config -> Other -> HaE 中配置 HaE 插件 JAR 包路径后,才会显示 HaE 插件的日志信息、数据高亮功能):

插件配置文件默认存放路径如下(优先检测当前插件 jar 包所在目录下是否存在 OneScan 目录,如果存在,将使用该目录作为工作目录;否则,使用如下路径作为工作目录):

linux、macOS:
~/.config/OneScan/

windows:
C:\Users\<用户名>\.config\OneScan\

插件说明

主动扫描

可以从BurpSuite其它位置发送到OneScan主动扫描

可以使用已配置的字典发送到OneScan主动扫描(存在1个以上的字典配置才会出现该菜单):

辅助面板

提取请求和响应包中JSON格式的字段,插件1.0.0版本新增Fingerprint指纹信息展示

动态变量

目前支持的动态变量如下(以目标:http://www.xxxxxx.com:81/path/to/index.html 为例,日期和时间以:2030-08-09 07:08:09 为例):

{{host}} - 请求头中的Host(格式:www.xxxxxx.com:81)
{{domain}} - 请求头中不包含端口号的Host(格式:www.xxxxxx.com)
{{domain.main}} - 主域名(格式:xxxxxx.com;如果是IP地址或无效格式,会自动跳过这条Payload)
{{domain.name}} - 主域名的名称(格式:xxxxxx;如果是IP地址或无效格式,会自动跳过这条Payload)
{{protocol}} - 请求头中的协议(格式:http)
{{timestamp}} - Unix时间戳(单位:秒)
{{random.ip}} - 随机IPv4值
{{random.local-ip}} - 随机内网IPv4值
{{random.ua}} - 随机UserAgent值,随机源可配置
{{subdomain}} - 子域名动态变量(格式:www;只有主域名时:`xxxxxx.com` => `xxxxxx`)
{{webroot}} - 一级目录动态变量(格式:path;不存在一级目录时,会自动跳过这条Payload)
{{date.yyyy}} - 日期:年(格式:2030)
{{date.MM}} - 日期:月(格式:08)
{{date.dd}} - 日期:日(格式:09)
{{date.yy}} - 日期:年(格式:30)
{{date.M}} - 日期:月(格式:8)
{{date.d}} - 日期:日(格式:9)
{{time.HH}} - 时间:小时(格式:07)
{{time.mm}} - 时间:分钟(格式:08)
{{time.ss}} - 时间:秒(格式:09)
{{time.H}} - 时间:小时(格式:7)
{{time.m}} - 时间:分钟(格式:8)
{{time.s}} - 时间:秒(格式:9)

Databoard数据看板

插件数据看板说明如下

过滤规则配置

点击主面板的Filter按钮,打开设置过滤规则对话框(插件0.5.2版本新增功能)

临时过滤规则

通过右键菜单,点击“临时过滤选中数据”添加临时过滤规则:

只支持临时添加相同值的过滤(复杂的规则,请点击 Filter 按钮处理),例如选中了 Status400503 的两条数据,生成的临时过滤规则示例如下:

Status != 400 && Status != 503

Config配置

Payload(字典、Payload处理)

Payload配置界面如下

Request(请求相关配置)

Request配置界面如下

Host(主要是黑、白名单配置)

Host配置界面如下

Other(其它配置)

Other配置界面如下

Fingerprint指纹

插件1.0.0版本新增Fingerprint指纹模块,指纹管理界面如下

指纹信息全程使用UI添加,不需要编写正则匹配规则(也可以使用正则匹配),UI界面如下:

指纹信息说明

指纹规则说明

包含七种数据源

共有十种匹配方法

Collect数据收集

插件 1.5.0 版本新增 Collect 数据收集面板,面板截图如下:

插件演示

将如下数据包主动发送到 OneScan 插件扫描:

POST /mcp/pc/pcsearch HTTP/1.1
Host: ug.baidu.com
Content-Length: 56
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Content-Type: application/json
Accept: */*
Origin: https://www.baidu.com
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

{"invoke_info":{"pos_1":[{}],"pos_2":[{}],"pos_3":[{}]}}

面板展示如下:

QQ交流群

欢迎各位师傅加入 OneScan 交流群

772823734

项目热度

非常感谢各位师傅关注此项目

Stargazers over time

END