用途:面向已确认原型链污染(PP)后的进阶利用,聚焦服务端 RCE 与客户端 gadget 提权。使用前需先加载 ../prototype-pollution/SKILL.md 掌握基础(merge sink、proto 与 constructor.prototype、基础探测)。
主要能力:服务端方面覆盖 Node.js child_process 的 shell/ENV 注入(如 proto.shell、NODE_OPTIONS),以及 EJS(outputFunctionName)、Pug(block/self)、Handlebars(type/program)、Nunjucks(type)、Express res.render 等模板引擎 gadget。客户端方面覆盖 jQuery $.extend 深合并与 DOM gadget、Lodash .merge/.defaultsDeep/_.set 与 _.template sourceURL gadget,以及 Angular、Vue、Ember、Backbone 等框架的 script gadget 和 DOM 属性污染。
检测与绕过:提供黑盒服务端检测(注入后观察响应差异、错误触发、状态码/头部污染)、客户端检测(控制台检查 Object.prototype、重写 defineProperty 追踪写入),并列出 PPScan、server-side-prototype-pollution、ppfuzz、ppmap 等工具。绕过 proto 过滤可用 constructor.prototype 路径、括号记法变体、JSON 键变体。
限制:Object.assign 为浅拷贝,不会污染原型,仅递归/深合并函数存在风险;利用需匹配目标技术栈与已知 gadget,未知环境需借助 KNOWN_GADGETS.md 逐一尝试,并先用安全载荷(sleep/DNS 回调)验证再升级。