精品熟人妻一区二区三区四区不卡-精品爽黄69天堂a-精品水蜜桃久久久久久久-精品丝袜国产自在线拍-精品丝袜国产自在线拍a-精品丝袜国产自在线拍免费看

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【JavaScript】JSON.parse 背后的安全隱患與黑盒利用方法

admin
2025年4月23日 16:59 本文熱度 83

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


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

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

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

? 它本身不會執(zhí)行代碼、不會像 Java 反序列化一樣觸發(fā)遠程類加載或代碼執(zhí)行。

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


?? 2. 典型安全風險與利用場景

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

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

?? 利用前提:

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

?? 典型 payload:

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

?? 后果示例:

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

?? 常見數(shù)據(jù)包格式

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

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

? Burp 分析方法:

步驟觀察點
1. 請求發(fā)出目標接口是否處理 JSON 格式數(shù)據(jù)
2. 重復訪問其他接口是否行為改變(權限 / 響應內(nèi)容)
3. Proxy + Repeater逐步調(diào)整 payload,如 ["__proto__"]
4. 添加測試斷點使用 Logger++ 插件記錄響應中的 isAdmin 等字段是否被反映

如果行為生效,將獲得Admin權限,頁面菜單等權限將有明顯改變


? 風險二:拒絕服務攻擊(Billion Laughs / Deep Nesting DoS)

{
"a":{"a":{"a":{"a":{"a":{"a":{"a":{"a":{"a":{"a":{}}}}}}}}}}
}
  • 重復嵌套結構觸發(fā) CPU 暴漲或內(nèi)存崩潰。
  • 常用于前期探測、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)>"}

?? 3. 數(shù)據(jù)包特征分析

我們?nèi)绾?*在黑盒測試中識別系統(tǒng)內(nèi)部使用了 JSON.parse()**?以下是典型思路:


?? 特征:API 接收 JSON 格式 body

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

{"username":"admin"}

?? 判斷方式分析:

線索
推理
是否支持嵌套對象?
是 → 可能直接 JSON.parse 解析并用于配置邏輯
修改特殊鍵如 __proto__ 有無響應變化?
有 → 極有可能未進行關鍵字段過濾
是否響應體中出現(xiàn)原樣字段回顯?
是 → 可能存在配置渲染邏輯
是否異常響應(500 / timeout)?
是 → 考慮 DoS 測試有效


??? 組合測試

  • 提交 __proto__ → 檢查是否持久化
  • 提交 constructor.prototype.polluted = true → 檢查全局污染跡象
  • 利用 ["__proto__"] 數(shù)組索引寫入,繞過某些黑名單
  • 使用深嵌套 JSON → 檢測解析限制

?? 4. 防御建議

安全措施
描述
輸入校驗
禁止解析中出現(xiàn) __proto__constructor 等關鍵字段
使用深拷貝庫
避免使用 Object.assign,推薦 structuredClone() 或安全庫
限制嵌套層級
使用庫如 json-parse-better-errorsajv 等做層級與結構校驗
WAF 規(guī)則增強
對 JSON payload 關鍵字(如 "__proto__")做識別和阻斷
最小權限原則
后端合并配置時應隔離用戶與系統(tǒng)配置空間,避免全局污染


? 總結

項目
說明
安全點
JSON.parse本身安全
風險點
使用方式不安全:合并配置、渲染 HTML、未校驗字段
探測方式
看輸入格式、嵌套特征、行為響應變化
利用策略
利用字段污染 → 影響權限邏輯 / 全局變量 / DoS
防御建議
嚴格輸入控制 + 合理合并方式 + 安全庫使用


閱讀原文:原文鏈接


該文章在 2025/4/24 9:23:14 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 精品视频一区二区三区在线 | 欧亚乱熟女一区二区三区在线 | 国产日韩欧美亚洲精品中字 | 国产日韩免费视频 | 国产人妻人伦精品九色威尼斯商人 | 国产剧情av麻豆香蕉精品 | 午夜福利电影1区 | 偷窥亚洲综合20p | 国产精品日韩欧美久久综合 | 国产精品乱码久久久久久小说 | 国产国产人免费视频成69 | 亚洲欧美日韩漫画 | 国产精品视频一区二区538 | 欧美人妻一区二 | 91无码人妻精品一区二区 | 亚洲成av| 成人片黄网站色 | 99久久精品国产免费看 | 日韩av一区二区精品不卡 | 精品乱码一区二区三区四区 | 97热久久免费频精品99 | 毛片无遮挡高清免费 | 91久久国产口精品久久久 | 精品国产电影网久久久久婷婷 | 91无码人妻精品一区二区蜜桃 | 亚洲av无码一区二区二三区 | 午夜免费观看福利片 | 91精品国产免费青青碰在线 | 日韩精品无码一区aaa片 | 3d动漫精品啪啪一区二区免费 | 无码人妻精品一区二区三区久久 | 精品欧美一区视频在线观看 | 亚洲无码精品在 | 在线欧美日韩亚洲国产一区 | 久久成人精品免费播放 | 国产在线无 | 午夜福利理论片在线观看播放 | 激情一区二区三区成人 | 欧美成人精品视频在线播放 | 日韩av一区二区精品不卡 | 国产高清在线观看av不 |