banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

基于dbcpのfastjson rceエコーバック再現

先に環境のコンパイルを行います。プロジェクトのアドレス: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.javaspring 回显代码
BCELEncode.javaclass ファイルを 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

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。