
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6

found by Red Timmy Security
技術的分析:
セキュリティアドバイザリ:
FlexPaper(PHP)の change_config.php は、管理者が正しく認証されているかどうかを確認しないため、攻撃者がサーバー上の任意のファイルを削除できるようになっています:

unlink 関数を使用してサーバー上のファイルを削除する経路を示しています攻撃者は次のようなリクエストを作成し、任意のフォルダ内のファイルを削除できます:
POST /flexpaper/php/change_config.php HTTP/1.1
Host: 127.0.0.1:8888
[...]
SAVE_CONFIG=1&SWF_Directory=config/
このリクエストにより、攻撃者は config ディレクトリ内のすべてのファイルを削除します。
config/ フォルダ内のすべてのファイルが削除されるため、FlexPaper はアプリケーションが一度も初期化されていないと判断します:

したがって、攻撃者は FlexPaper を再セットアップできます。しかし、なぜでしょうか?
setup.php には pdf2swfEnabled という関数があり、PHP の exec コマンドをユーザーが POST で渡したパラメータとともに使用します。これは FlexPaper の初期化(手順 2.)であるため、認証はありません。

攻撃者は次のようなペイロードを作成できます:?step=4&PDF2SWF_PATH=id; これにより exec(id; --version 2>&1) が実行されます。
攻撃者は、コマンドの出力を config フォルダ内のファイルにリダイレクトし、GET リクエストを送信して出力を読み取ることができます:

認証チェックが change_config.php の先頭に追加されました。
