
CVE-2018-19859 リモートコード実行の概念実証
このリポジトリには、OpenRefine < 3.1-beta に対するリモートコード実行 (RCE) の概念実証が含まれています。Create Project 機能内部のディレクトリトラバーサル脆弱性 CVE-2018-19859 を悪用することで、悪意のあるユーザーはカスタム Java 拡張機能をアップロードしてコード実行を達成できます。
この概念実証には、ユーザーが {webroot}/extension/whiteoak/ にアクセスすると起動するシンプルな Java リバースシェルが含まれています。
openrefine/extensions/ ディレクトリにクローンします。build.xml ファイルを変更して、新しい拡張機能への参照を追加します。./refine clean && ./refine build で拡張機能をコンパイルします。evilarc_whiteoak.py を使用して悪意のある zip アーカイブを生成し、ディレクトリ全体の zip slip アーカイブを作成します。webroot パスが指定されていることを確認してください:python3 evilarc_whiteoak.py -d 14 -p "{webroot directory}/openrefine/webapp/extensions/" whiteoak/
{webroot}/extension/whiteoak/ にアクセスして、新しいシェルを取得します。GitHub に CVE の詳細 を投稿してくれた @itsacoderepo に感謝します。
元の Zip Slip アーカイブ生成ツール を作成した @ptoomy3 に感謝します。このツールは White Oak Security が python3 に更新し、ディレクトリのアーカイブ対応を追加しました。