配置对象经过递归合并后改变全局行为,如何判断是否形成原型污染利用链?
简答题困难992 次浏览
参考答案与解析
# 核心结论
判断递归合并是否形成可利用的原型污染,不能只看输入中是否出现 __proto__、constructor 或 prototype。完整利用链至少要证明三个环节:攻击者能够控制危险键或属性路径;写入最终影响共享原型或后续对象的继承属性;某个安全敏感的汇聚点读取该继承属性,并据此改变权限、命令、模板、网络请求或其他关键行为。只有入口而没有可达写入,或者发生污染但没有有价值的消费者,风险可能有限;若共享原型被污染且存在危险汇聚点,则可能造成跨请求权限绕过、拒绝服务,严重时甚至形成代码执行条件。
# 底层机制
普通 JavaScript 对象读取缺失属性时会沿原型链继续查找。例如业务代码使用 `i
