JSON攻击全解:从反序列化到CSRF的十二类实战手法"

admin 2026-10-16 05:32:56 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

JSON攻击全解:从反序列化到CSRF的十二类实战手法

原创

Red Hunter
Red Hunter

黑白之道

2026年10月2日 08:50
韩国

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

导语:JSON在REST API(基于HTTP协议设计的接口规范)和AJAX应用里几乎是默认数据格式。但用得广不代表它安全——服务端解析不严、客户端eval不加过滤、Content-Type(HTTP头部字段,标识请求体的数据格式)随手切——这十二类JSON实战攻击,红队每天都在用。


一、JSON 的攻击面在哪

JSON(JavaScript Object Notation,JS对象标记)本身只是数据载体,攻击面集中在两端:服务端反序列化(不安全的库直接构造对象)和客户端解析(eval 这种\"原始\"调用方式)。常见踩点场景:

  • 服务端把用户传入的 JSON 数据未经任何过滤直接写入响应流或文件
  • 客户端用 eval() 把 JSON 字符串当代码执行
  • Content-Type 没做白名单,攻击者可以把 application/json 改成 application/xml,触发完全不同的解析器

只要 JSON 链路里有一环\"裸奔\",下面 12 类攻击至少能跑通一半。


二、十二类 JSON 实战攻击

2.1 JSON 反序列化

最经典也最致命的一类。Jackson(Java生态的JSON处理库)、fastjson、Python pickle 这些库如果开了 enableDefaultTyping 或者允许 @type 字段,攻击者就能传入任意类名,触发 Gadget Chain(一连串反射调用链)拿 RCE(远程代码执行)。详细利用链可以参考 blackhat 这份论文:

https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-13th-JSON-Attacks-wp.pdf

2.2 JSONP(JSON Padding,JSON填充)

通过 callback 参数让服务器返回可执行的 JS(JavaScript脚本),跨域读取用户数据。Day-8 已经详细拆过,包括 Referer 绕过、CSP(Content-Security-Policy,内容安全策略)配置等手法,这里不重复。

2.3 暴力破解类

针对登录、密码重置、验证码接口跑字典。JSON 接口和传统 Web 没区别,重点盯接口限流(Rate Limiting)、账户锁定策略(Lockout Policy)、失败响应差异这三点。

2.4 XXE(XML External Entity,XML外部实体注入)

最容易被忽略的一招。JSON 接口后端如果同时支持 XML 解析,攻击者只需要把 Content-Type: application/json 改成 application/xml,再塞一段 XML 就能触发 XXE,读文件、SSRF(服务端请求伪造)甚至 RCE。

利用步骤:

  1. 抓一个 JSON 请求
  2. 改 Content-Type: application/xml
  3. 插入 XML 实体 payload(外部实体引用,用于读取本地文件或触发SSRF)
  4. 看响应有没有回显文件内容
  5. Burp 有 Content Type Convertor 插件可以一键切换

2.5 XSS(Cross-Site Scripting,跨站脚本攻击)

JSON 接口本身不会触发 XSS,但如果前端把响应数据直接拼到 DOM(文档对象模型,即浏览器内部的页面元素树)里渲染,存储型或反射型 XSS 就来了。Fuzz 字典里塞 \"><img src=x onerror=alert(1)> 这种 payload 测一轮。

2.6 注入类

和传统 Web 一样,SQL 注入(SQLi)、命令注入(CMDi)这些老朋友照样有效。比如登录接口:

{\"username\":\"admin' OR '1'='1\",\"password\":\"x\"}

只要后端是字符串拼接而不是参数化查询,必中。判别诀窍:响应里的报错信息、时间差异、布尔盲注(通过页面真假两种响应反推数据库内容)差异。

2.7 文件包含 / 本地文件读取

后端如果有\"读文件\"这种功能,并且 path 参数没做白名单,可以直接打穿:

// 原始请求
{\"user\":\"admin\",\"path\":\"/admin.html\"}

// 攻击 payload
{\"user\":\"admin\",\"path\":\"../../../../../../../../../../../etc/passwd\"}

2.8 访问控制 / 逻辑漏洞

BAC(Broken Access Control,失效的访问控制)——用普通用户身份改 ID 看别人的订单、改 email 把别人的账户绑到自己邮箱下。这类问题更多是开发逻辑的锅,跟 JSON 本身没关系,但每个 JSON 接口都得过一遍。

2.9 CSRF(Cross-Site Request Forgery,跨站请求伪造)

JSON 接口默认不带 CSRF Token,所以默认就是 CSRF 易感。HTML 表单可以通过 enctype=\"application/json\" 触发(部分浏览器支持),但更现实的打法是用 XSS 配合 fetch 直接发请求。

典型 Payload:

<form action=\"https://target/site/getuserinfo\" method=\"POST\"
      enctype=\"application/json\">
  <input name='{\"id\":\"1\",\"email\":\"[email protected]\"}' type='hidden'>
  <input type=\"submit\">
</form>

2.10 JSON Hijacking(JSON劫持)

JSONP 的\"孪生兄弟\",利用 <script> 标签加载跨域 JSON 响应,通过覆盖原生 JS 对象(比如 Object.prototype 的 __defineSetter__)在数据被解析时窃取。现代浏览器已修复——但在 IE 老版本、内网环境、Hybrid App 里还能用。

2.11 其他常见漏洞

Mass Assignment(批量赋值,覆盖不应被外部修改的字段)、Open Redirect(开放重定向,跳转到任意URL)、Parameter Tampering(参数篡改)、Response Manipulation(响应篡改)、Session 缺陷——JSON 接口一个都跑不掉。

2.12 进阶攻击

论文 ExploitingJSON 里提的几个冷门但有意思的攻击:

  • String Defracturing:利用字符串拆分绕过 WAF(Web应用防火墙)的关键字匹配
  • Malicious Hashing:构造哈希冲突拖慢服务
  • Fused Proxy Attack:JSON↔XML 类型切换做协议跳跃
  • JSON-XML Banner Grabbing:通过响应差异识别后端栈

三、红队测试 Checklist

打 JSON 接口时,按这个顺序过一遍,效率最高:

  1. 抓包改 Content-Type —— application/json ↔ application/xml,看后端解析器
  2. 注入 <> 和引号 —— 触发 XSS 和注入类问题
  3. 路径参数遍历 —— 看有没有本地文件读取
  4. 测 IDOR(Insecure Direct Object Reference,不安全直接对象引用) —— 改 user\_id / order\_id 越权
  5. Fuzz callback 参数 —— JSONP / Hijacking 链路
  6. 看报错 —— 反序列化类的报错信息最值钱,能直接定位类名

四、防御要点

  • 服务端反序列化关掉 DefaultTyping,或加 @JsonIgnoreType 黑名单
  • Content-Type 严格白名单(只接受 application/json)
  • 全链路参数化查询,禁字符串拼接
  • 接口加 Rate Limiting + 锁定策略
  • 关键操作加 CSRF Token / SameSite Cookie
  • 前端渲染 JSON 数据必须 HTML 转义

JSON 不是银弹。攻击面换了一种姿势,攻击者照打不误。


原文出处:learn365 Day-9 JSON Attacks 参考论文:The 13th JSON Attacks


👇 点击阅读原文,访问我的网站



汽车安全入门01|汽车总线协议全景:CAN/LIN/FlexRay/以太网,红队先搞懂'它怎么说话'" 网络安全文章

汽车安全入门01|汽车总线协议全景:CAN/LIN/FlexRay/以太网,红队先搞懂'它怎么说话'"

本文系统梳理汽车四大总线协议,重点解析CAN总线帧结构、仲裁机制与攻击原理,演示Linux下SocketCAN工具链操作,并给出Jeep攻击链示例与防御监控思路。核心结论是CAN总线为车安全研究核心,攻击者通过注入伪造帧控制车辆,防御需监控总线异常。建议入门者先掌握CAN协议与DBC文件解析。
【系列报告】美国涉台军事干预与同盟战略意图评估" 网络安全文章

【系列报告】美国涉台军事干预与同盟战略意图评估"

该文档为美国涉台军事干预与同盟战略意图评估系列报告研究纲要,提出梯度化介入与条件分析方法,涵盖行动样式、决策授权、战区响应、AUKUS能力、战略资源、盟伴分层、美日协同及国际化边界等八篇内容,强调从战略意图到军事能力的转化条件,避免简单二元判断,注重时间约束与分层比较。可操作建议是关注其研究框架。
评论:0   参与:  0