跳到正文
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(原文)

安装前可以查看交给 AI 代理的指令内容。

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 版本圈定仍可能有效的原语再跑。

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

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 的全部技能

报告此技能的问题