오늘은 CVE-2021-24563에 대해 알아보고자 한다❗
이번 취약점은 엄청 간단하다❗
CVE-2021-24563은 frontend-uploader 플러그인에서 발생하는 Stored XSS 취약점이다.
우선 Frontend-Uploader 플러그인은 방문자가 손쉽게 파일을 업로드할 수 있는 기능을 추가해준다.
해당 CVE가 발생하는 버전은 Frontend Uploader 1.3.2 이하버전이므로 Frontend Uploader 1.3.2 버전을 다운로드 받는다.
환경구성은 Wordpress의 wp-content > plugins 폴더 안에 복사하여 붙여넣는다.
이후 관리자 페이지에서 플러그인 탭을 클릭하여 "Frontend Uploader"를 활성화시켜준다.
다음으로는 페이지 > Add New 버튼을 눌러 새로 페이지를 생성시켜준다.
ShortCode를 통해 Frontend Uplaoder 플러그인을 사용하기위해 "[fu-upload-form]" 을 넣어준다.(해당 ShortCode는 플러그인 폴더안에 readme.txt에 적혀있었다.)
짠!👋 폼이 생성되었다.
생각보다.. ShortCode를 어떻게 쓸지 몰라 애먹었다......
이번 취약점은 너무 어이없게도 올리는 파일을 별도로 검증하지 않아 발생한다.
.php 확장자를 가진 파일은 업로드가 막혀있지만 .html 확장자는 별다른 필터링없이 업로드할 수 있다.
바로 .html 파일을 작성하여 업로드해보자!
<script>alert('XSS');</script>
html 파일의 내용은 위와 같다. 그냥 단순하게 XSS 문자열을 출력하는 alert 창을 띄우는 구문이다. 해당 파일을 upload.html로 저장하고 Upload!!!
Submit.
별다른 필터링없이 업로드에 성공한다.
다시 관리자 권한을 가진 사용자로 로그인한다.
미디어탭의 Manage UGC로 들어가면 사용자가 업로드한 파일이 보인다.
파일의 URL 위치가 나온다.
해당 URL을 브라우저창에 복사하여 이동해보자.
BOOM! 스크립트가 잘 실행된다.
※ 참고
👉 https://wpscan.com/vulnerability/e53ef41e-a176-4d00-916a-3a03835370f1/
👉 https://medium.com/pentesternepal/cve-2021-24563-unauthenticated-stored-xss-frontend-uploader-1-3-2-8522e0890833