最近、さまざまなバージョンの fastjson 脆弱性が再現されています。ポップ チェーン トリガーの脆弱性を追跡するアイデアを使用しながら、パケットを送信することによっても再現しようとしています。現在、インターネット上で一般的な fastjson 脆弱性環境のバージョンは 1.2.24 と 1.2.47 です。他のブロガーさんの環境構築方法を参考に、dockerを使ってfastjsonの脆弱性の各種バージョンを構築する方法をまとめました。
ここでは、建物 1.2.68 を例として取り上げます。
書類の準備
fastjsonファイル
このWebサイトから、使用したいfastjsonバージョンのjarファイルをダウンロードできます。
https://repo1.maven.org/maven2/com/alibaba/fastjson/
例えば
fastjson-1.2.68.jar: https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.68/fastjson-1.2.68.jar
脆弱性環境ファイル
リンク: https://pan.baidu.com/s/1w1RGrWakmsdjXfoI5dMt6Q
抽出コード: C1s0
Tomcat ドッカー環境
ここでは公式の Tomcat Docker を使用しないでください。現在、公式バージョンは domcat10 です。ビルド時にいくつかの問題が見つかりました。tomcat8 または tomcat9 Docker を使用することをお勧めします。Docker Hub で次の Docker を使用しました
。
docker pull luiscortes/tomcat8.5-ora8jdk-alpine
jdkファイル
リンク: https://pan.baidu.com/s/1ZK34siB-Lk2xMSfr-5lDfA
抽出コード: C1s0
環境構築
1.ドッカーを起動する
港湾労働者を引っ張る
docker pull luiscortes/tomcat8.5-ora8jdk-alpine
ドッカーを起動します
docker run --name tomcat -p 9090:8080 -d luiscortes/tomcat8.5-ora8jdk-alpine
ここでは、ポート 9090 を使用してポート 8080 をマップします。
ドッキング ウィンドウを表示します。
docker ps
それから私たちは訪問します
http://ip:9090
私たちが構築した Docker が表示されます
2.Javaフォルダーを作成する
ドッカーに入る
docker exec -it 60263595095a /bin/bash
ここで、独自の CID に従って
Java フォルダーを作成するコマンドを変更することに注意してください。
mkdir /usr/java
次に、ドッカーを終了します
exit
3. ファイルをアップロードする
docker を終了したら、先ほどダウンロードしたファイルをアップロードする必要がありますが、
まず各種ファイルがダウンロードされたディレクトリに移動し、ホストからファイルを 1 つずつ docker にコピーし、その中の fastjson_rce を解凍します。 tar.gzを事前に取得してfastjsonフォルダを取得します
docker cp fastjson tomcat:/usr/local/tomcat/webapps/
docker cp jdk-8u181-linux-x64.tar.gz tomcat:/usr/java/
docker cp fastjson-1.2.68.jar tomcat:/usr/local/tomcat/webapps/fastjson/WEB-INF/lib/
4. Docker環境を構成する
再びdockerに入ります
docker exec -it 60263595095a /bin/bash
JKDアーカイブを解凍します。
tar -xzvf usr/java/jdk-8u181-linux-x64.tar.gz
pox.xml ファイルを編集する
vi /usr/local/tomcat/webapps/fastjson/META-INF/maven/com.vulhub.fastjson/fastjson/pom.xml
対応する fastjson バージョンを変更します。ここでは 1.2.68 に変更し、終了して保存します。
5. 環境検証
私たちは訪ねる
http://ip:9090/fastjson/
Hello World という文字が表示されれば環境構築は成功したので
、抜け穴がないか確認してみます。
{
"x":{
"@type":"java.net.InetSocketAddress"{
"address":,"val":"dnslog"}}}
パッケージが POST に変更され、Content-Type
脆弱性トリガーが正常に追加されたことに注意してください。