先进行环境的编译,项目地址:GitHub - depycode/fastjson-local-echo: 基于dbcp的fastjson rce 回显

idea编译

配置好maven和setting.xml

image-20230329151853299

配置jdk为1.8

image-20230329151908401

package之后生成jar文件

image-20230329152319368

image-20230329151933841

运行jar文件,启动环境

java -jar demo-0.0.1-SNAPSHOT.jar

image-20230329151948017

浏览器访问

image-20230329152028904

适用场景

  • fastjson <= 1.2.24
  • 1.2.33 <= fastjson <= 1.2.47
  • jdk <= 8u251
  • 存在 tomcat-dbcp

复现

文件名 介绍
SpringEcho.java spring 回显代码
BCELEncode.java 将class文件进行bcel编码

首先将SpringEcho.java 编译生成 SpringEcho.class 文件,然后用BCELEncode 对class 文件进行bcel编码

  • fastjson <= 1.2.24 poc

    • 见github项目
  • 1.2.33 <= fastjson <= 1.2.47 poc

    • 见github项目

image-20230329152045628

image-20230329152104074

上处driverClassName中的内容通过BCELEncode进行编码

image-20230329152124284