
RealPlayerの任意のファイルダウンロードとディレクトリトラバーサルにより、Import() メソッドを介してリモートコード実行につながる概念実証エクスプロイト。
Real Playerの'external::Import()'任意ファイルダウンロード、ディレクトリトラバーサル脆弱性によりリモートコード実行に至る
ビデオデモ: https://youtu.be/CONlijEgDLc
Real PlayerはMicrosoft Internet Explorerの機能を利用し、アプリケーション固有の特別な手段を通じてプロパティとメソッドを公開します:
'external'オブジェクトは、いくつかのカスタムメソッドとプロパティを公開します。
'Import()'メソッドは、'Copy to My Music'パラメータに関して安全でない方法で処理され、任意のファイルタイプのダウンロードを許可します。 これは、ユーザーのディスクにダウンロードできるのはオーディオ/画像/ビデオタイプのみであるべきため、安全ではない可能性があります。さらに、ファイルパスを適切にサニタイズしないため、 任意の場所に任意のファイルを配置できます。ダウンロードしたファイルをレンダリングできないためにエラーを表示しますが、ユーザーがダイアログボックスを閉じるまでファイルは残ります。 さらに、新しいウィンドウを開くとき、Real Playerは古く廃止されたIEライブラリ(shdoclc.dll)を探します。これも悪用して、再起動を待たずに自動的にコードを実行できます ('startup'フォルダにファイルが配置されている場合に当てはまります)。
攻撃者は、コピー/ダウンロードされるファイルをSMBまたはWebDav共有でホストする必要があります。 ディレクトリ'appdata'は共有のルートに配置する必要があります。
また、'external.PreloadURL()'のDoS状態は、Real Playerによってファイルが削除されないようにするのに役立ちます。
PoCは、ユーザーの'windowsapps'フォルダに'shdoclc.dll'(デモ目的で'DllMain()'で'cmd.exe'を実行する簡単なコードを含む)をドロップし、'startup'フォルダに'write.exe'をドロップするため、普遍的に機能します(少なくともXPから11までの任意のWindowsバージョン)。
RP ver. 16.00.282、16.0.3.51、Cloud 17.0.9.17、v.20.0.7.309でテスト済み。