Repository navigation
Releases: MY0723/HAPPY-JS
Releases · MY0723/HAPPY-JS
Release list
HAPPY-JS v1.5
HAPPY-JS v1.5大更新,最新版在知识大陆搜索需付一点点费用,v1.6更全指纹,更智能识别
v1.5.0
- 新增「接口认证扫描」模块:扫描页右上角添加「接口认证扫描」按钮,一键对当前页面已发现的全部 API(
absoluteApis+apis)尝试 14 种常见绕过变体主动探测未授权访问;仅同源不携带 cookie(credentials: 'omit')请求返回2xx/3xx即视为可未授权访问 - 绕过变体覆盖:
;.css/;.js/;.ico/;.png/;.html/.css/.js/.ico/.png/.html/%23//#//?a=1/ 原始路径 —— 覆盖 Tomcat/Resin/Spring;.xxx绕过、Shiro/#/绕过、%23编码绕过、扩展名白名单绕过等多种已知姿势 - 新增「接口 baseURL」识别(被动):content.js 新增
BaseUrlExtractor,从页面/外链 JS 中识别axios.defaults.baseURL/axios.create({baseURL})/$.ajaxSetup({url})/const BASE_URL = '...'/const API_HOST = '...'/ fetch wrapper 等 5+ 种 baseURL 配置;识别结果归入新的「接口 baseURL」分类展示,拼接 API 时优先级为:手动配置 > 识别结果 >location.origin - 手动 baseURL 配置:设置页新增「手动 baseURL」输入框,页面 JS 识别不到时手动指定接口主域(如
https://api.example.com),保存后实时同步到所有打开页面的 content.js,无需刷新即可生效 - 扫描结果新增 2 个分类 chip:「接口 baseURL(识别)」「接口未授权(绕过扫描)」;接口未授权结果每行展示:变体标签(
;.css/.css/#/等)+ 状态码标签(按 2xx/3xx/4xx/5xx 自动着色)+ baseURL 标签 + 原始接口路径;点击 URL 复制,Ctrl 点击新标签打开 - 背景新增
AuthBypass模块:主动探测走 SWfetch+AbortController超时(8s)+ 并发控制(4)+redirect: 'manual',避免探测请求被跳转耗时间;与JsFetcher/RegexMatcher平级,支持扩展 - MCP 服务预留
get_auth_bypass工具点(v1.5.0 内仅基础设施):后续版本将暴露给 AI 工具供取证调用 - 版本号同步:manifest / popup.html / popup 关于块 / MCP server / content.js 注释 / README 全部统一到 v1.5.0
v1.4.0
- 存储桶主动检测新增「漏洞类型」勾选:日志窗口在 10 厂商勾选之外新增 8 类漏洞类型勾选(存储桶可遍历 / PUT文件上传 / DELETE文件删除 / ACL可读 / ACL可写 / Policy可读 / Policy可写 / 桶接管,带全选/清空),仅对勾选类型发起对应探测请求;检测引擎 10 厂商模块新增
enabledTypes选项门控(缺省=全量,向后兼容),未勾选的写类探测(PUT/DELETE/写ACL/写Policy)不再发请求;主动检测的类型以窗口勾选为准,未传时回退检测策略页开关 - 版本号同步:manifest / popup.html / popup 关于块 / MCP server / content.js 注释 / README 全部统一到 v1.4.0
v1.3.5
- 修复信息泄露引擎在 content script 未加载:原
tools/bundle_content.js的wrapToBlock直接抽 IIFE 函数体,但该 IIFE 的形参是global(在 Chrome/Firefox content script 顶层未声明),导致self.ApiFinderEngine/self.API_FINDER_RULES/self.BURPAPI_RULES始终是undefined,扫描控制台报[API Finder] 引擎未 inline/[InfoLeakage] 引擎未加载,且 65 条内置 + 106 条 BurpAPI = 171 条规则全部不参与匹配。修复:抽出函数体后把\bglobal\.全部替换为self.;删除打包尾追加的无效变量名检测行 - 扫描页顶部统计数字支持点击跳转:每个 chip 增加
data-key与title,对应 section 加id="scanner-section-{key}";点击 chip 平滑滚动到该 section + 临时闪烁高亮(section-flash动画 1.2s)+ 切换选中态(.summary-chip.active);CSS 加cursor:pointer/ hover / active 样式 - 修复 popup 跳转不生效问题:popup 真正的滚动容器是
<main class="pages">(flex:1; overflow-y: auto; position: relative),原window.scrollTo是空操作;改为优先滚.pages.scrollTo({ top: target.offsetTop - summary.offsetHeight - 14, behavior: 'smooth' }),窗口不可滚动时 fallback 到window.scrollTo - 版本号同步:manifest / popup.html / popup 关于块 / MCP server / content.js 注释 / README 全部统一到 v1.3.5
v1.3.0
- 新增「信息泄露」模块(导航栏「指纹」之后):基于多关键字 AND 关系的高精度规则匹配引擎,作为 content.js 现有 29 类单正则扫描的二轮增强:
- 规则结构升级:单条规则可配
keyword: ['newPwd', 'userName']等多个关键字,默认 AND 关系(必须全部命中才触发)→ 大幅降低误报 - 规则字段:每个规则有
id / category / subcategory / match (keyword|regex) / location (body|urlPath|header|all) / accuracy (1-3) / important / describe / enabled - 内置规则:
data/api_finder_rules.js提供 50+ 条手工编写的高质量规则,覆盖改密码/身份证/银行卡/JWT/Spring Actuator/Swagger/Git 元数据 等高频敏感点 - 全量导入 BurpAPIFinder 规则:
tools/import_burpapi_rules.js一键把finger-important.json中 106 条规则转换到 HappyJS 格式,输出到data/api_finder_rules_burpapi.js - 分块正则匹配(50000 字符/块,CASE_INSENSITIVE),避免在 5MB JSON 上跑大正则卡死;坏正则 / null 关键字自动容错
- 白名单配置:通过
category: '白名单URL后缀'/'白名单路径'/'白名单域名'把白名单声明为规则格式,不参与匹配但参与 URL 过滤 - MCP 工具:可通过
get_scan_results直接读取infoLeakage分类;新增规则命中按category → subcategory → ruleId三层分组展示
- 规则结构升级:单条规则可配
- popup 新增「信息泄露」页:按分类折叠展示、可按分类/重要度筛选、一键导出 JSON
- 引擎模块化:
data/api_finder_engine.js(匹配引擎)+data/api_finder_rules.js(内置规则)+data/api_finder_rules_burpapi.js(BurpAPIFinder 全量导入,自动生成),三者可在 popup「规则管理」中独立启用/禁用 - 单元/集成测试:
tools/test_api_finder_engine.js(vm 沙箱,26 项)覆盖 AND 关键字、正则、白名单提取、enabled 禁用、大 body 性能、坏正则容错等 manifest.jsonweb_accessible_resources暴露data/api_finder_*.js给 content script fetch 加载