先に環境のコンパイルを行います。プロジェクトのアドレス:GitHub - depycode/fastjson-local-echo: 基于 dbcp 的 fastjson rce 回显
idea コンパイル & 環境設定#
maven と setting.xml を設定します。
JDK を 1.8 に設定します。
package を実行し、jar ファイルを生成します。
jar ファイルを実行し、環境を起動します。
java -jar demo-0.0.1-SNAPSHOT.jar
ブラウザでアクセスします。
適用シナリオ#
- 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 プロジェクトを参照
上記の driverClassName の内容は BCELEncode を使用してエンコードされます。