
Elementor Website Builder WordPressプラグインで確認されたCVE-2021-24891のDOMベースのクロスサイトスクリプティング(XSS)脆弱性をシミュレートおよび悪用するための、実践的なコンテナ化されたラボ環境です。
このラボでは、WordPress用Elementorプラグイン(3.4.8より前のバージョン)に存在する**DOMベースのクロスサイトスクリプティング(XSS)**脆弱性を実演します。この脆弱性は、ElementorエディタのクライアントサイドコードがURLのハッシュ(#...)からデータを直接読み取り、適切なサニタイズを行わずにページのドキュメントオブジェクトモデル(DOM)へ追加することによって発生します。
攻撃者は、ハッシュフラグメントにJavaScriptペイロードを含む悪意のあるリンクを作成できます。ログイン済みの管理者(サイト編集者など)がこのリンクをクリックすると、悪意のあるスクリプトがそのブラウザセッションのコンテキストで実行され、攻撃者が管理者の代わりに操作を実行したり、セッションCookieを窃取したり、Webサイトを改ざんしたりする可能性があります。
#で始まるURLの一部分で、クライアントサイドで処理され、サーバーには送信されません。これが悪意のあるペイロードのエントリポイントとなります。このリポジトリには、影響を受けるElementorプラグインを備えた脆弱なWordPressインスタンスが含まれており、すぐに悪用して試すことができます。このラボは、クラウド上またはローカルマシンですぐに実行できます。
これは最も簡単な開始方法です。ブラウザ上で動作する、事前構成済みのクラウドベース環境が提供されます。
Codespaceを起動: このREADMEの上部にある「Open in GitHub Codespaces」バッジをクリックします。
セットアップを待機: GitHubが環境を準備します。完了すると、ターミナルが表示されます。
脆弱なサービスを起動: VS Codeターミナルで次のコマンドを実行します:
docker compose up
これにより、脆弱なWordPressサイトとデータベースが起動します。「Ports」タブが表示されるので、ポート8080のリンクをクリックすると、WordPressが新しいブラウザタブで開きます。
Dockerを使って、ラボ全体を自分のマシンで実行します。
前提条件:
手順:
リポジトリをクローン:
git clone https://github.com/hackmelocal/CVE-2021-24891-Simulation.git
cd CVE-2021-24891-Simulation
脆弱なサービスを起動: ターミナルで次のコマンドを実行します:
docker compose up
WordPressにアクセス: Webブラウザを開き、http://localhost:8080にアクセスします。
Elementorエディタ内のJavaScriptコードは、window.location.hashから値を読み取り、その値をページのDOMに安全でない方法で書き込みます。入力(<script>alert(...)</script>)がサニタイズされていないため、ブラウザはそれを有効なスクリプトタグとして解釈して実行します。これは、DOMベースのXSSの典型的な例です。
このラボは教育目的のみで提供されます。作成者は、提供される情報やツールの誤用について一切責任を負いません。セキュリティテストを実施する前に、必ず適切な許可を得てください。
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。