Intro

작년 까지는 국내 버그 바운티 프로그램에 참가하여 취약점을 제보하고 포상금을 받았습니다.

올해의 목표는 CVE 를 발급 받는 것이었는데요. 어떻게 찾게 되었는지 간단하게 작성하고자 합니다.

 

CVE를 발급해주는 기관을 찾다보니 wordpress 와 wordpress plugin에서 취약점을 찾게 되면, 정해진 기관에 제보하여 CVE 발급을 해줄 수 있다는 정보를 얻었습니다. 저는 Patchstack 기업에 wordpress plugin 취약점을 찾아 제보하였는데요.

 

제보를 하다보니 1월달에는 여러개의 취약점을 찾아 제보하게 되었습니다. 운이 좋게도, Patchstack은 달마다 순위를 매기게 되는데 1등을 차지 했습니다. 포상금 기대를 하지 않고 CVE 목적으로 제보했는데, 1등이라 포상금도 주더라구요.

이런곳에서 1등 이라니

 

 

제보한 취약점 중, 아래 페이지에서 공개 되었습니다.

 

WordPress Export All URLs plugin <= 4.1 - Authenticated Stored Cross-Site Scripting (XSS) vulnerability - Patchstack

Hand curated, verified and enriched vulnerability information by Patchstack security experts. Find all WordPress plugin, theme and core security issues.

patchstack.com

 

 

 

Find a Vulnerability

분석 대상인 wordpress plugin은 Export All URLS 입니다. 대략 3만명 정도가 해당 plugin을 사용 중 이네요.

https://ko.wordpress.org/plugins/export-all-urls/

 

 

해당 플러그인을 설치하고 설정 페이지에 접근하면, 아래 사진처럼 wordpress에 작성된 모든 게시글을 목록화 하거나 CSV 파일로 다운 받을 수 있습니다. 저는 CSV 파일 기능 말고, admin 페이지에서 모든 게시글 목록화 기능을 테스트 했습니다. 

 

 

아래 사진처럼 게시글 번호와 title 값이 목록으로 출력되는 것을 볼 수 있습니다. 만약 title에 XSS 코드를 삽입 했을 때,  html entity를 sanitizer 하는지 여부를 확인했습니다.

 

 

아래 코드를 보면 title 값을 목록화 할때, html entity 를 sanitizer 하지 않는 것을 볼 수 있습니다. echo 함수로 그대로 출력하는 것을 볼 수 있죠.

 

Boom!

 

따라서 저는 다음과 같은 시나리오를 만들어 제보하였습니다.

  • 공격자는 editor 이상의 권한을 가진 계정을 탈취한다.
  • 공격자는 탈취한 계정으로 title에 XSS payload를 작성한다.
  • 이후, 관리자가 위에서 언급한 plugin 기능을 사용하면, 위 사진처럼 Stored XSS 코드가 동작하게 된다.

 

언젠가 나만의 CVE를 가질 것이다라고 생각만 했지, 구글링 및 노력한 끝에 별거 아니지만 CVE를 얻을 수 있었습니다.

또한, 코드를 보면서 취약점을 찾는 과정이 재미있어 앞으로 꾸준히 취약점을 발굴하고 제보할 것 같네요.

(코드 분석 실력 및 CVE를 얻는 일석이조!)

 

'Bug Bounty' 카테고리의 다른 글

[분석 일기] - Microsoft Teams - Cross Site Scripting (XSS) Bypass CSP (CVE-2021–24114)  (0) 2022.07.19
처음으로 CVE 발급 받은.ssul [CVE-2022-29452]  (0) 2022.05.28
NBB-2330  (0) 2022.04.21
NBB-2301  (0) 2022.04.21
NBB-2238  (0) 2022.04.21
NBB-2217  (0) 2022.04.21