一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

admin 2024年11月6日10:33:49评论13 views字数 4209阅读14分1秒阅读模式

0x01 工具介绍

APIFinderPlus 一款在自动化API挖掘与敏感信息提取的工具,支持提取响应中的敏感数据、URL和URI信息,并能递归扫描未访问的URL。它提供了基于已知路径计算实际URL、处理webpack格式拼接路径的功能,支持通过SQLite数据库存储分析数据。该插件可以自动化扫描并提取潜在的API路径,优化API安全测试流程,减少手动操作,且支持自定义规则和配置。

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

下载地址 

https://github.com/winezer0/APIFinderPlus

0x02 功能简介

插件目标

做最全面的API挖掘工具、 减少手动拼接path的提取测试、 补充无法自动处理的操作

  • 支持响应信息中的敏感信息、URL、URI信息提取
  • 支持自动基于已知路径信息计算PATH对应的实际URL
  • 支持自动访问 挖掘出来的URL信息 进行递归式的信息提取
  • 支持对webpack的js的简单格式的拼接提取 (限制格式,但准确度高)
组合形式 abcd.xxxx.js 

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

组合形式 1234.xxxx.js 

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

注意事项

  • 所有数据都是存储sqlite进行读写、比内存操作慢一些.
  • 当目标数量过多时、执行 刷新未访问URL、自动递归扫描 任务时,占用的内存应该是较大的。
  • 因为功能过多,使用请将鼠标悬浮到文本或按钮上,查看操作描述

基本流程 【旧版】

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

功能说明

【功能一】针proxy代理后的流量, 会根据协议+域名+端口进行分类,点击后可展开对应的uriisJsFindUrl: 编写该uri是否为插件通过对网页内容进行识别后提取出来的uri还是用户proxy访问到的Result: 匹配到敏感信息的结果:敏感内容或-describe: 匹配到敏感信息的描述说明HavingImportant:红标则表示该uri下匹配重要敏感信息的规则,需要重点查看【功能二】针对匹配到敏感信息的响应数据包,会在这里展示对应匹配的规则,以及在match result上表红展示对应匹配规则的关键词/正则的后200个字符,方便用户快速进行人工识别,减少工作量【功能三】该功能为是否开启插件提取网页中的uri中存在的网址进行自动化发包识别该uri是否包含敏感信息,插件会默认提取出网页中uri出来,但是是否发包来识别取决于该按钮,目前发包只支持GET请求发包【功能四】该功能为刷新插件的列表的信息,因为当我们在浏览或者操作表格的时候,则会暂停刷新,方便我们进行浏览和操作,如果用户10分钟无任何操作行为,则会自动化每10秒刷新表格【功能五】快速过滤条件,方便用户优先查看重点信息

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

默认配置

内置86条敏感内容的匹配规则,10条有价值信息的匹配规则,7条敏感路径的匹配规则

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

白名单URL后缀

类似.ico、.jpg、.png等资源类、静态类的后缀通常不存在敏感信息,则可直接去掉这种,但.html、.js除外

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

白名单域名

默认会过滤掉一些白域名,比如我们代理的时候可能会访问到baidu、google等,这种就不需要进入敏感信息识别中

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

白名单路径

过滤掉uri中包含这些的,比如用于读取图片、字体等,减少性能开销

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

0x03更新说明

 优化从JS中提取url路径,方式一:从单双引号中提取出包含/的路径 优化从JS中提取url路径,方式二:优化提取js中concat的场景,补全父路径 优化从JS中提取url路径,方式三:针对404场景,通过匹配已经访问过的路径,来寻找对应的父路径 匹配内容标高亮显示,有价值标蓝色,敏感信息标红色 前端展示js提取出来的url结果 新增右键"提取url"功能,支持对某一个具体路径提取出url出来 新建右键"自定义凭证",支持对URL下返回状态码3xx且重要无敏感指纹场景的补充上自定义凭证进行识别 新增右键"自定义路径扫描", 支持该URL对下面目录进行扫描且支持自定义凭证扫描 新增右键"用户自定义父路径", 支持该URL下返回状态码3xx或4xx且无敏感指纹场景的补充上自定义父路径后进行识别 新增右键"复制",快速对PATH复制 优化结果输出,默认输出匹配到末尾40个字符出来

0x04 使用介绍

下载BurpAPIFinder-high-v2.0.2.jar加载即可

  1. BurpAPIFinder-high-v2.0.2.jar为高性能版本:对大js会提取前500w出来作识别
  2. BurpAPIFinder-lower-v2.0.2.jar为普通性能版本:对大js会提取前50w出来作识别
  3. 如原先有使用旧版本的,需要删除掉原先同BurpAPIFinder.jar同目录下的BurpAPIFinder.db和finger-tmp.json文件后再加载
  4. 加载完后,不需要任何其他配置,只需要你在访问的网站的BurpSuite的代码,就会进行敏感指纹识别,有空去看看该网站看有没有匹配到敏感信息即可

一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测

主要任务 【更新】

定时任务线程:- 查询数据库 ReqDataTable 表  - 是否存在未分析的 消息    - 根据规则配置 匹配 提取 请求|响应中的敏感信息和URL、PATH      - 分析结果存入数据库 AnalyseUrlResultTable 表- 查询数据库AnalyseUrlResultTable 表    - 将 AnalyseUrlResultTable 表中的新结果按照RootUrl分类插入到 AnalyseHostResultTable 表- autoPathsToUrlsIsOpen 开启自动基于路径计算URL功能 (默认关闭、支持手动)  - 查询数据库  RecordPathTable    - 检查是否存在没有加入到 网站路径树 的有效请求PATH      - 根据已记录的URL路径计算/更新Pathree        - 分析结果存入 PathTree 表  - 查询数据库 联合分析 PathTreeTable 和 AnalyseHostResultTable 表    - 检查是否存在已经更新的PathTree 但是还没有重新计算过PATH URL的数据      - 根据已更新的Pathree计算新的PATH可能的前缀        - 分析结果存入  AnalyseHostResultTable 的 PATH计算URL - autoRecursiveIsOpen 开启自动访问未访问的URL  - 查询数据库 AnalyseHostResultTable 表    - 判断是否URL是否都已经被访问      - 对未访问URL构造HTTP请求

内部规则说明

    注意:对于CONF_开头和location为config的规则,属于内部规则,不用于信息匹配。    CONF_DEFAULT_PERFORMANCE: 默认的性能配置        "maxPatterChunkSizeDefault=1000000",  正则匹配一次性处理的响应长度 修改保存后立即生效        "maxStoreRespBodyLenDefault=1000000", 数据库保存响应体的最大大小 修改保存后立即生效        "monitorExecutorIntervalsDefault=4",  几秒钟执行一次检查提取操作 修改保存后立即生效        其他默认UI按钮相关的参数,修改保存后,重启插件生效    自定义自动请求扫描的方法        1、CONF_RECURSE_REQ_HTTP_METHODS 自定义 任意 请求方法列表支持 【每行一种请求方法】        2、CONF_RECURSE_REQ_HTTP_PARAMS 配置禁止自动扫描的URL关键字 如【logout、del】等 防止误删除         3、CONF_BLACK_RECURSE_REQ_PATH_KEYS 支持自定义请求参数 【一次的请求参数写在一行即可,多行会遍历】       注意:当前请求的请求头是基于当前URL请求体中动态获取的,后续根据用户需求添加自定义请求头功能。    CONF_WHITE_ROOT_URL: 允许扫描的目标RootUrl关键字    CONF_BLACK_ROOT_URL: 禁止进行[监听扫描|URL提取|PATH提取]的 RootUrl关键字    CONF_BLACK_URI_PATH_KEYS: 禁止进行[监听扫描|URL提取|PATH提取]的 URI 路径关键字    CONF_BLACK_URI_EXT_EQUAL:  禁止进行[监听扫描|URL提取|PATH提取]的 URI 文件扩展名    CONF_BLACK_AUTO_RECORD_PATH: 禁止自动进行有效PATH记录的目标RootUrl关键字    CONF_BLACK_AUTO_RECURSE_SCAN: 禁止自动进行未访问URL扫描的目标RootUrl关键字    CONF_WHITE_RECORD_PATH_STATUS: 允许自动进行有效PATH记录的响应状态码    CONF_BLACK_RECORD_PATH_TITLE: 禁止自动进行有效PATH记录的响应标题    CONF_BLACK_EXTRACT_PATH_EQUAL: 禁止提取的URI路径[等于]此项任一元素    CONF_BLACK_EXTRACT_INFO_KEYS: 禁止提取的敏感信息[包含]此项任一元素    CONF_REGULAR_EXTRACT_URIS: 提取响应URI|URL的正则表达式

匹配规则说明

匹配方法("match"字段):    1、关键字匹配 ("match": "keyword")    2、正则匹配 ("match": "regular",)实际匹配规则("keyword" : [] 列表):     1、关键字匹配规则编写        每行是一个关键字提取匹配规则、        每行的内容由多个关键字拼接组成,拼接符号是 【|】     举例:        "keyword": ["fzhm|total|rows" ],       表示要求 同时含有 fzhm、total、rows 关键字        注意:            1、本规则和原版的有差异,            2、由于使用了拼接符号 【|】 ,因此不能让匹配关键字中包含【|】     2、正则匹配规则编写         每行是一个正则提取匹配规则匹配位置("location" 字段):    locations = {"path", "body", "header", "response", "config"};    path 请求路径    body 响应正文    header 响应头    response 全部响应内容    config 配置规则、不参与匹配其他关键字:    "accuracy": 规则准确度    "describe": 规则描述    "isImportant": 匹配结果是否重要信    "isOpen": 是否启用规则    "type": 规则类型

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月6日10:33:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一款全面的API挖掘工具基于APIFinder UI 进行重构开发|漏洞探测http://cn-sec.com/archives/3361447.html

发表评论

匿名网友 填写信息