成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端 數據安全
本文深入解析 JSON.parse() 的安全風險、攻擊方式,并講解如何在黑盒測試中通過數據包行為反推出后臺邏輯,為你打開攻防對抗中的新視角。

一段簡單的 JSON 解析代碼,可能是一次嚴重的原型污染、提權繞過、服務癱瘓的開始。本文深入解析 JSON.parse() 的安全風險、攻擊方式,并講解如何在黑盒測試中通過數據包行為反推出后臺邏輯,為你打開攻防對抗中的新視角。

一、JSON.parse 是什么?它本身安全嗎?

JSON.parse() 是 JavaScript 原生函數,用于將字符串解析為 JavaScript 對象:

const obj = JSON.parse('{"user":"admin"}');

它本身不會執行代碼、不會像 Java 反序列化一樣觸發遠程類加載或代碼執行。

但它存在安全隱患的傳播點,關鍵在于:你如何使用解析后的對象!

二、安全風險與利用場景

風險一:原型鏈污染(Prototype Pollution)

關鍵字段如 __proto__ / constructor / prototype 被寫入對象中,通過合并操作傳播到所有對象。

利用前提:

  • 后端用 Object.assign、lodash.merge 等合并用戶傳參與默認配置。
  • 沒有進行關鍵字段過濾。

典型 payload:

{
"__proto__": {
"admin": true
  }
}

后果示例:

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

常見數據包格式:

POST /api/profile HTTP/1.1
Host: target.example.com
Content-Type: application/json
Content-Length: 70

{
  "__proto__": {
    "isAdmin": true
  }
}

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":{}}}}}}}}}}
}
  • 重復嵌套結構觸發 CPU 暴漲或內存崩潰。
  • 常用于前期探測、WAF 繞過測試。

風險三:DOM-Based XSS(前端使用不當)

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

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

攻擊者構造:

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

三、數據包特征分析

我們如何**在黑盒測試中識別系統內部使用了 JSON.parse()**?以下是典型思路:

特征:API 接收 JSON 格式 body

POST /api/config HTTP/1.1
Content-Type: application/json

{"username":"admin"}

判斷方式分析:

線索

推理

是否支持嵌套對象?

是 → 可能直接 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

防御建議

嚴格輸入控制 + 合理合并方式 + 安全庫使用

責任編輯:趙寧寧 來源: 季升安全
相關推薦

2016-09-29 22:09:26

2011-05-19 11:08:13

打印機故障解決

2010-09-17 14:29:23

2014-09-02 09:49:38

2020-03-31 14:40:24

HashMap源碼Java

2012-06-25 09:18:36

2009-07-06 13:38:02

2017-02-24 08:11:09

Docker數據安全容器

2021-06-06 13:06:34

JVM內存分布

2017-08-01 09:35:03

2009-03-17 09:48:00

2011-05-05 18:28:18

2013-02-21 10:11:58

2023-12-25 11:55:58

2014-04-14 13:19:41

初志科技電子文檔

2022-01-20 10:54:23

移動手機短信驗證碼隱患

2016-08-18 00:21:12

網絡爬蟲抓取網絡

2024-08-12 12:30:27

2019-07-23 08:56:46

IoT物聯網安全

2014-07-03 11:01:13

mongoDB安全隱患
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区在线视频 | 午夜精品久久 | 欧美成人精品一区二区三区 | 久久久黑人 | 精品成人av | 色婷婷综合久久久久中文一区二区 | 九九热在线免费视频 | 日韩成人免费视频 | 亚洲国产欧美日韩 | 欧美中文字幕 | 日本在线一区二区三区 | 亚洲网站在线 | japanhd美女动 | 在线视频99 | 亚洲综合大片69999 | 四虎在线观看 | 久久曰视频 | 亚洲女人天堂网 | 五月婷婷 六月丁香 | 日本人麻豆 | 射久久| 中文字幕亚洲精品 | 国产电影一区二区三区爱妃记 | 久久精品一区二区 | 久久久久久久久久一区 | 成人欧美一区二区三区在线播放 | 日本黄色高清视频 | 特黄色一级毛片 | 日韩欧美国产精品一区二区三区 | 凹凸日日摸日日碰夜夜 | 一区二区三区中文字幕 | 中文精品视频 | 成人亚洲综合 | 久久久久av| 欧美精品一区二区三区在线播放 | 日韩精品久久久 | 国产精品久久久久一区二区三区 | 一级黄色毛片子 | 午夜欧美一区二区三区在线播放 | 99re | 欧美一区二区 |