
Apache Struts に、CVE-2023-50164(CVE: 9.8)として識別される重大なセキュリティ脆弱性が発見されました。この脆弱性により、攻撃者がファイルアップロードパラメータを操作し、不正なパストラバーサルやリモートコード実行(RCE)につながる可能性があります。
Apache Struts において、CVE-2023-50164(CVE: 9.8)として識別される重大なセキュリティ脆弱性が発見されました。この脆弱性により、攻撃者はファイルアップロードパラメータを操作し、権限を超えたパストラバーサルやリモートコード実行(RCE)につながる可能性があります。
このエクスプロイトスクリプトは、vsociety での CVE 分析のために作成されました。
デモンストレーション用に、シンプルなダミーアプリが開発されています(struts-app フォルダを参照)。
Tomcat や他の任意のサーブレットコンテナにデプロイするか、mvn jetty:run で実行できます。
後者の場合、ポート 9999 でアプリにアクセスできます。
このエクスプロイトスクリプトは、アプリが Tomcat にデプロイされている場合にのみ機能します。なぜなら、この攻撃経路は WAR ウェブシェルをアップロードするものだからです。
ただし、同じ脆弱性でも、使用されている技術やその他の状況に応じて、他の多くの攻撃経路が成立する可能性があります。
エクスプロイトアプリを Docker にデプロイします:
docker container stop exploit
docker build -t exploit .
docker run -d --rm --name exploit -p 8080:8080 exploit
pip パッケージをインストールします:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
次に、エクスプロイトスクリプトを実行します:
Docker の場合:
python3 exploit.py --url http://localhost:8080/upload-1.0.0/upload.action
Vagrant の場合:
python3 exploit.py --url http://192.168.56.25:8080/upload-1.0.0/upload.action
エクスプロイトには、ファイルアップロード機能が実装されている完全な URL が必要であることに注意してください。
このエクスプロイトスクリプトは、研究および効果的な防御技術の開発のみを目的として作成されました。 悪意のある活動や不正な活動に使用することを意図したものではありません。 本スクリプトの作者および所有者は、本ソフトウェアの誤用または損害について、一切の責任を負いません。 ユーザーは、このソフトウェアを責任を持って、適用法令に従ってのみ使用することが強く求められます。 責任を持って使用してください。