Search

[Stored XSS] CVE-2025-31864

Categories
Tags
작성일
2025/04/03
1 more property

1️⃣ Component type

WordPress plugin

2️⃣ Component details

Component name Beam me up Scotty – Back to Top Button
Vulnerable version <= 1.0.23
Component slug beam-me-up-scotty

3️⃣ OWASP 2017: TOP 10

Vulnerability class A3: Injection
Vulnerability type Cross Site Scripting (XSS)

4️⃣ Pre-requisite

Administrator

5️⃣ Vulnerability details

👉 Short description

Beam me up Scotty 플러그인 1.0.23 이하 버전에서는 back to top 버튼의 커스터마이징 설정값에 대한 데이터 타입 유효성 검사와 이스케이프 처리가 불충분하여 저장형 크로스 사이트 스크립팅 취약점이 존재합니다.
이 커스터마이징 설정은 관리자 권한을 가진 사용자만 접근 가능하며, 관리자 권한을 가지는 공격자가 취약점을 악용할 경우 back to top 버튼이 표시되는 모든 페이지의 방문자들에게 크로스 사이트 스크립팅 공격에 노출됩니다.

👉 How to reproduce (PoC)

1.
Beam me up Scotty 플러그인 1.0.23 이하 버전이 설치 및 활성화된 워드프레스 사이트를 준비합니다.
2.
back top top 버튼을 커스터마이징 하기 위한 메뉴(/wp-admin/themes.php?page=beam-me-up-scotty_settings)로 이동합니다.
3.
Proxy 도구(예: BurpSuite)의 Intercept를 활성화한 상태에서 back to top 버튼 설정 메뉴 하단의 'Save' 버튼을 클릭하여, back to top 버튼 커스터마이징 설정값을 저장하는 요청 패킷을 Intercept합니다.
4.
요청 페이로드 중 ‘beam_me_up_scotty_bottom_indentation' 페이로드의 값을 아래로 변경한 뒤, Forward를 수행합니다.
20px;}</style><script>alert("XSS")</script><style>foo{bottom:0
JavaScript
복사
5.
이후, 워드프레스 사이트로 접속하면 XSS 취약점이 발생하는 것을 확인하실 수 있습니다.

👉 Additional information (optional)

[취약점 발생 원인]

Beam me up Scotty 플러그인은 back to top 버튼의 커스터마이징 설정값을 적용하기 위해 /wp-content/plugins/beam-me-up-scotty/library/includes/dynamic-css.php 파일을 실행합니다.
이 파일은 커스터마이징 설정값을 style 태그 내 back to top 버튼의 스타일 속성값으로 설정합니다. 이때, back to top 버튼의 커스터마이징 설정 값이 아무런 이스케이프 처리 없이 style 태그에 참조되는 것을 확인하실 수 있습니다.
따라서, PoC에서 XSS 공격 스크립트를 입력한 페이로드 ‘beam_me_up_scotty_bottom_indentation’ 의 값은 아무런 이스케이프 처리 없이 back to top 버튼의 스타일 속성 값으로 참조되어 스크립트가 실행되는 것을 확인할 수 있습니다.
결과적으로 워드프레스 사이트에 접속 할 경우 아래의 HTML 코드를 확인할 수 있습니다.

👉 Attach files (optional)