
CVE-2022-34919 の概念実証エクスプロイト: Contensis CMS バージョン 15.2.1.79 以前における認証なしのファイルアップロードおよび任意のコマンド実行。ステップバイステップの再現手順とウェブシェルの展開を含みます。
バージョン15.2.1.79 より前の Contensis Content Management System の 'Classic' インターフェースには、認証されていないユーザーが任意のファイルをアップロードおよび承認できる脆弱性が存在します。aspx ファイルをアップロードすることで、Web サーバーのコンテキストでコマンドを実行することが可能です。
この脆弱性は2022年3月に発見され、Zengenti が2022年4月8日のリリースで修正しました。
再現手順:
1:
最初のファイルアップロードは、以下のエンドポイントへの POST リクエストで実行されます。
https://[example].cloud.contensis.com/REST/UI/Wizards/CreateContent/UploadFile?folderId=1&projectId=1&context=%7B%22UserID%22%3A1%2C%22LanguageID%22%3A1%2C%22SecurityToken%22%3A%22%22%7D
context パラメータは、どのユーザーがファイルをアップロードしているかを示します。この場合、UserId 1 (システム管理者) です。SecurityToken パラメータは必須ですが、空白でも構いません。このリクエスト (スクリーンショット1) により、サーバー上に UUID を持つ一時ファイルが生成されます。この例では、次の場所にある webshell を使用しました: https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.aspx

2:
次に、以下のエンドポイントへの POST リクエストでファイルを承認する必要があります。
https://[example].cloud.contensis.com/REST/UI/Wizards/CreateContent/CreateContent
このリクエスト (スクリーンショット2) には、最初のリクエストの一時ファイルへのパスが含まれ、公開用の承認パラメータと、ファイル制限を回避するためのコンテンツタイプの変更パラメータが含まれます。この例では、ContentTypeId が 43 に設定されており、ASPX ではなく HTML ドキュメントであることを示しています。 ファイルは以下の 'preview' および 'live' ドメインで利用可能になります。
https://preview-[example].cloud.contensis.com/cmd2.aspx
https://iis-live-[example].cloud.contensis.com/cmd2.aspx

3:
責任を持って、許可されたホストでのみテストしてください (スクリーンショット3)