Skip to content

Releases: MY0723/HAPPY-JS

Release list

HAPPY-JS v1.5

Choose a tag to compare

@MY0723 MY0723 released this 16 Sep 03:35
36b5b2e

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 模块:主动探测走 SW fetch + 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.json web_accessible_resources 暴露 data/api_finder_*.js 给 content script fetch 加载