本文へ移動
cccskills
無料GitHub で公開

hunt-nodejs-permission-bypass

在授权测试中核验 Node.js 权限模型(--permission / --experimental-permission,及旧 policy.json)能否被内部 API 绕过。

当目标依赖 Node.js Permission Model 做沙箱隔离、需要判断给定 Node 版本下是否存在已知逃逸(inspector 断点、process.binding、fs.statfs/openAsBlob、process.mainModule.require、Module._load、path.resolve 覆盖、Uint8Array 路径、符号链接重命名)时使用。

适用目标类型 Node.js 运行时 / 依赖权限模型的服务或 CLI。触发场景包括用户说"这个 Node 权限模型靠谱吗""--permission 能被绕过吗""测下 policy.json 沙箱逃逸""inspector/process.binding 能突破权限吗"。

输出:给定 Node 版本下各绕过原语的命中矩阵 + 建议升级版本(含 killed 记录)。

インストール方法を見る

含まれるファイル(7)

  • SKILL.md5.2 KB
  • evidence/.gitkeep0 B
  • reference.md3.9 KB
  • tools/common.py2.8 KB
  • tools/hunt_nodeperm.py7.6 KB
  • tools/recon.sh3.0 KB
  • tools/validate.sh4.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

hunt-nodejs-permission-bypass · Node.js 权限模型逃逸核验

只解决一件事:判定某 Node.js 版本 + 权限配置下,已知内部 API 绕过原语还有没有效。这是本地能力核验(不是远程扫描)——在受权限模型限制的进程里跑一批 PoC,看哪些能读到本应被禁的文件。

权限模型的隔离承诺很脆:很多逃逸是"用内部 API 绕开被拦的公开 API"。本 skill 把已知原语做成可重复的命中矩阵,帮你快速判断目标 Node 版本是否安全。PoC 只读授权内的标记文件验证逃逸,不做破坏。绕过原语与对应修复版本见 reference.md。

Scope(授权范围)

先确认授权,再运行 PoC。 这些 PoC 会尝试突破沙箱读文件。

开工前落实:

  • 授权在目标环境/副本上运行 Node PoC(生产慎用,优先用同版本副本)。
  • 一个受限标记文件路径(PoC 尝试越权读它来证明逃逸),内容无敏感信息。
  • 目标 Node 版本与启动方式(--permission / --experimental-permission / --allow-fs-read 白名单 / policy.json)。

任一不清楚就停下问。只在授权环境跑,只读标记文件。

Goal

产出"该 Node 版本 + 配置下,各已知绕过原语是否仍可逃逸"的命中矩阵,给出可复现 PoC 与修复建议(升级到已修复版本 / 禁用 inspector / 避免动态 path.resolve)。

Workflow

scope-check → recon → hunt → validate → report。

1. scope-check

  • 输入:授权 + 受限标记文件路径。
  • 动作:写 evidence/scope.txt(含 restricted_file / node_target)。
  • 命令:bash tools/recon.sh --scope-only。
  • 终止条件:evidence/scope.txt 存在且授权明确,否则 KILL。

2. recon

  • 输入:目标 Node(本机 node 或指定二进制)。
  • 动作:探测 Node 版本、是否支持/启用权限模型、可用绕过面。
  • 输出:recon/node_env.json(版本、权限模型状态、适用原语列表)。
  • 命令:bash tools/recon.sh [--node <path>]。
  • 终止条件:拿到版本与权限模型状态;不支持权限模型则记录结束。

3. hunt

  • 输入:recon/node_env.json + 受限标记文件。
  • 动作:为每个绕过原语生成 PoC .js,在 --experimental-permission --allow-fs-read=<白名单> 下运行,检查是否读到白名单外的标记文件。
  • 输出:candidates.json(每原语:是否逃逸成功 + 原始 stdout/错误)。
  • 命令:python tools/hunt_nodeperm.py --restricted <标记文件> --output candidates.json [--node <path>]。
  • 终止条件:candidates.json 生成,覆盖全部原语。

4. validate → report

  • 输入:candidates.json。
  • 动作:对逃逸成功项过 7-Question Gate,复现留证;对照 reference.md 标注对应 CVE 与修复版本。
  • 输出:evidence/(PoC + 输出)+ report/candidates.md(命中矩阵)。
  • 命令:bash tools/validate.sh candidates.json。
  • 终止条件:每原语有 confirmed/killed,confirmed 有 PoC 与越权读证据。

7-Question Gate(任一 NO 则 KILL)

  1. 在授权环境运行(非未授权生产)?
  2. 目标确实启用了权限模型(否则"绕过"无意义)?
  3. PoC 确实读到了白名单外的标记文件(客观逃逸信号)?
  4. 逃逸走的是内部/非预期 API(而非配置本就放行)?
  5. 可复现(重跑稳定)?
  6. 已留存 PoC 源码 + 运行输出证据?
  7. 能给出影响与修复版本,且只读了授权标记文件?

Finding 输出格式

### <原语名>(Node <版本>)
- Severity: Critical | High | Medium | Low | Info
- Asset: Node <版本> + <权限配置>
- Reproduction: <PoC 片段 + 启动命令>
- Impact: <逃逸后可读/可执行范围> + 对应 CVE
- Evidence: <evidence/ PoC.js + 输出>
- Fix: <已修复版本 / 缓解措施>
- Status: confirmed | killed(<第几问 NO + 原因>)

参考

绕过原语(inspector / process.binding / fs.statfs / fs.openAsBlob / mainModule.require / Module._load / path.resolve 覆盖 / Uint8Array 路径 / 符号链接重命名)、对应 CVE 与修复版本见 reference.md——按 recon 出的 Node 版本圈定仍可能有效的原语再跑。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use when an agent must decide whether to proceed autonomously, ask for clarification, request approval, or select an appropriate verification scope for a coding or documentation task

日本語の概要は準備中です。原文の説明を表示しています。

galact-byte/galact-Skills72026年10月13日 更新

在授权渗透测试中挖掘认证/授权绕过(authentication & authorization bypass)。当目标的登录、SSO/OAuth/SAML、2FA、会话、密码重置、邮箱验证等鉴权环节可能被逻辑缺陷或解析差异绕过时使用——典型场景:SAML 签名/entityId 绕过、OAuth `response_type`/`redirect_uri` 篡改窃取 token、邮箱规范化/预验证绕过、2FA 可预测/可跳过、会话类型混淆。适用目标类型 Web / REST API / SSO。触发场景包括用户说"测下认证绕过""这个 SAML/OAuth 有没有问题""能不能跳过 2FA""邮箱验证能绕吗"。输出:绕过路径 + 越权访问证据的 finding(含 killed 记录)。

日本語の概要は準備中です。原文の説明を表示しています。

galact-byte/galact-Skills72026年10月13日 更新

在授权渗透测试中挖掘 Web 缓存投毒与缓存欺骗(web cache poisoning / cache deception)。当目标前有缓存层(CDN/反代/Varnish)且缓存键未覆盖某些影响响应的输入(unkeyed header/参数/解析差异)时使用——典型场景:X-Forwarded-Host 反射进响应被缓存、unkeyed 参数、缓存键规范化差异、静态扩展名欺骗缓存私有页。适用目标类型 Web / CDN。触发场景包括用户说"测下缓存投毒""X-Forwarded-Host 能不能毒缓存""缓存欺骗看一下""unkeyed 输入有没有"。输出:投毒/欺骗可行性 + 被缓存证据的 finding(含 killed 记录)。

日本語の概要は準備中です。原文の説明を表示しています。

galact-byte/galact-Skills72026年10月13日 更新

在授权渗透测试中系统性挖掘命令注入与参数/标志注入(OS command injection、argument/flag injection、外部程序 delegate 注入)。当目标把用户输入拼进 shell 命令、或作为参数传给 git/tar/curl/ffmpeg/ImageMagick 等外部程序、或经模板/eval 执行时使用——典型场景:文件名/路径/URL/ref 参数最终进了命令行,想拿 RCE 或任意文件读写。适用目标类型 Web / REST API / CI 系统。触发场景包括用户说"测下命令注入/RCE""这个参数会不会进 shell""git/tar/ffmpeg 参数能注入吗""上传头像触发 ImageMagick 了"。输出:带原始请求/命令回显或带外证据的 finding 报告(含 killed 记录)。

日本語の概要は準備中です。原文の説明を表示しています。

galact-byte/galact-Skills72026年10月13日 更新

hunt-csrf

無料

在授权渗透测试中挖掘跨站请求伪造(CSRF)及其防护绕过。当目标存在状态变更操作(改邮箱/密码/角色/设置、转账、增删)而 CSRF 防护缺失或可绕过时使用——典型场景:无 token/token 不校验、SameSite=Lax 被 GET 或子域绕过、Content-Type text/plain 避开 preflight、cookie 注入伪造 token、Flash/307 重定向绕 CORS、Login CSRF。适用目标类型 Web / REST API。触发场景包括用户说"测下 CSRF""这个改密码有没有 CSRF 防护""SameSite 能绕吗""token 校验严不严"。输出:CSRF 可行性 + PoC 的 finding(含 killed 记录)。

日本語の概要は準備中です。原文の説明を表示しています。

galact-byte/galact-Skills72026年10月13日 更新

在授权渗透测试中挖掘不安全反序列化(insecure deserialization)。当目标把用户可控数据交给 unserialize/Marshal/pickle/ObjectInputStream/BinaryFormatter/YAML.load 等还原成对象时使用——典型场景:cookie/token/viewstate/隐藏字段里出现序列化数据、导入文件触发对象还原、想借 gadget chain 拿 RCE。适用目标类型 Web / REST API(PHP/Ruby/Python/Java/.NET)。触发场景包括用户说"测下反序列化""这个 cookie 是不是序列化对象""能不能 gadget chain 打 RCE""phar/Marshal/pickle 打一下"。输出:识别出的序列化落点 + gadget 可用性判定 + 带外/回显证据的 finding(含 killed 记录)。

日本語の概要は準備中です。原文の説明を表示しています。

galact-byte/galact-Skills72026年10月13日 更新

galact-byte のスキルをすべて見る

このスキルの問題を報告する