一文看懂 JSON.parse 背后的安全隐患与黑盒利用方法

  发布时间:2025-12-07 21:15:09   作者:玩站小弟   我要评论
一段简单的 JSON 解析代码,可能是一次严重的原型污染、提权绕过、服务瘫痪的开始。本文深入解析JSON.parse()的安全风险、攻击方式,并讲解如何在黑盒测试中通过数据包行为反推出后台逻辑,为你打 。

一段简单的懂J的安 JSON 解析代码,可能是背后一次严重的原型污染、提权绕过、全隐服务瘫痪的患黑盒利开始  。本文深入解析 JSON.parse() 的用方安全风险、攻击方式 ,免费模板懂J的安并讲解如何在黑盒测试中通过数据包行为反推出后台逻辑 ,背后为你打开攻防对抗中的全隐新视角。

一 、患黑盒利JSON.parse 是用方什么 ?它本身安全吗 ?

JSON.parse() 是 JavaScript 原生函数,用于将字符串解析为 JavaScript 对象 :

复制const obj = JSON.parse({ "user":"admin"});1.

它本身不会执行代码 、懂J的安不会像 Java 反序列化一样触发远程类加载或代码执行。源码下载背后

但它存在安全隐患的全隐传播点 ,关键在于:你如何使用解析后的患黑盒利对象!

二、用方安全风险与利用场景

风险一:原型链污染(Prototype Pollution)

关键字段如 __proto__ / constructor / prototype 被写入对象中 ,通过合并操作传播到所有对象。

利用前提 :

后端用 Object.assign、lodash.merge 等合并用户传参与默认配置 。没有进行关键字段过滤 。

典型 payload :

复制{ "__proto__": { "admin": true } }1.2.3.4.5.

后果示例 :

复制const config = Object.assign({ }, defaultConfig, JSON.parse(userInput)); // 之后任何 new Object() 都可能带上 admin: true1.2.

常见数据包格式 :

复制POST /api/profile HTTP/1.1 Host: target.example.com Content-Type: application/json Content-Length: 70 { "__proto__": { "isAdmin": true } }1.2.3.4.5.6.7.8.9.10.

Burp 分析方法 :

步骤

观察点

1. 请求发出

目标接口是服务器租用否处理 JSON 格式数据

2. 重复访问其他接口

是否行为改变(权限 / 响应内容)

3. Proxy + Repeater

逐步调整 payload,如 ["__proto__"]

4. 添加测试断点

使用 Logger++ 插件记录响应中的 isAdmin 等字段是否被反映

如果行为生效  ,将获得Admin权限,页面菜单等权限将有明显改变。

风险二 :拒绝服务攻击(Billion Laughs / Deep Nesting DoS) 复制{ "a":{ "a":{ "a":{ "a":{ "a":{ "a":{ "a":{ "a":{ "a":{ "a":{ }}}}}}}}}} }1.2.3. 重复嵌套结构触发 CPU 暴涨或内存崩溃 。常用于前期探测 、WAF 绕过测试 。风险三 :DOM-Based XSS(前端使用不当)

如果前端用 innerHTML 或 document.write 直接渲染 JSON 解析的模板下载字段:

复制const data = JSON.parse(payload); document.body.innerHTML = data.content;1.2.

攻击者构造:

复制{ "content": "<img src=x onerror=alert(1)>"}1.

三、数据包特征分析

我们如何**在黑盒测试中识别系统内部使用了 JSON.parse()** ?以下是典型思路 :

特征:API 接收 JSON 格式 body

复制POST /api/config HTTP/1.1 Content-Type: application/json { "username":"admin"}1.2.3.4.

判断方式分析:

线索

推理

是否支持嵌套对象?

是 → 可能直接 JSON.parse 解析并用于配置逻辑

修改特殊键如 __proto__ 有无响应变化?

有 → 极有可能未进行关键字段过滤

是否响应体中出现原样字段回显 ?

是 → 可能存在配置渲染逻辑

是否异常响应(500 / timeout) ?

是 → 考虑 DoS 测试有效

组合测试 :

提交 __proto__ → 检查是否持久化提交 constructor.prototype.polluted = true → 检查全局污染迹象利用 ["__proto__"] 数组索引写入,绕过某些黑名单使用深嵌套 JSON → 检测解析限制

四、云计算防御建议

安全措施

描述

输入校验

禁止解析中出现 __proto__ 、constructor 等关键字段

使用深拷贝库

避免使用 Object.assign ,推荐 structuredClone() 或安全库

限制嵌套层级

使用库如 json-parse-better-errors  、ajv 等做层级与结构校验

WAF 规则增强

对 JSON payload 关键字(如 "__proto__")做识别和阻断

最小权限原则

后端合并配置时应隔离用户与系统配置空间 ,避免全局污染

五、总结

项目

说明

安全点

JSON.parse本身安全

风险点

使用方式不安全:合并配置、渲染 HTML 、未校验字段

探测方式

看输入格式、嵌套特征、行为响应变化

利用策略

利用字段污染 → 影响权限逻辑 / 全局变量 / DoS

防御建议

严格输入控制 + 合理合并方式 + 安全库使用

  • Tag:

相关文章

  • 搜狗拼音输入法加密漏洞暴露用户输入

    搜狗拼音输入法加密系统爆安全漏洞可暴露用户输入。搜狗输入法是国内排名第一的输入法,有超过4.55亿月活用户,支持Windows、安卓、iOS、Linux等系统。搜狗拼音输入法加密漏洞暴露用户输入加拿大
    2025-12-07
  • YODA工具检测到4.7万恶意WordPress插件

    研究人员在2.4万网站发现4.7万WordPress恶意插件。佐治亚理工学院(Georgia Institute of Technology)研究人员经过8年的持续研究,开发了一个可以自动化检测恶意W
    2025-12-07
  • 云原生安全架构设计最佳实践

    云原生技术以其高效稳定、快速响应的特点不断驱动着企业的业务发展,已成为目前企业数字业务应用创新的核心动力。但与此同时,云原生环境中的各类安全风险也在日渐增加,越来越多的企业也开始探索云原生环境中的安全
    2025-12-07
  • 苹果敦促iPhone用户尽快更新到零风险版本

    苹果公司敦促macOS、iPhone和iPad用户在本周尽快安装设备的更新文件,这其中包括对两个处于主动攻击下的0 day漏洞的修复。这些漏洞允许攻击者执行任意代码并最终接管设备。这些补丁可用于运行i
    2025-12-07
  • 从Change Healthcare遭遇的勒索软件灾难中学到的八个重要教训

    从Change Healthcare遭遇的灾难性的勒索软件攻击中得出的教训正在逐渐明晰,这一事件鲜明地展示了医疗行业的脆弱性,并促使人们呼吁采取监管行动。今年2月的攻击破坏了全美
    2025-12-07
  • Group-IB:0ktapus网络钓鱼攻击导致Twilio等130个组织的上万凭据被窃取

    两周前,Twilio 和 Cloudflare 披露了一场精心策划的网络钓鱼攻击,导致两家公司员工的账户凭据被泄露。其中 Twilio 的两步验证2FA)系统被攻破,导致攻击者能够访问其内部系统。现在
    2025-12-07

最新评论