광팔이 보안이야기

[CVE-2021-24308] WordPress Plugin의 강좌 판매를 위한 LifterLMS의 계정 편집 페이지에서 Stored Cross-Site Scripting(XSS) 취약점 본문

Vulnerability Report/CVE

[CVE-2021-24308] WordPress Plugin의 강좌 판매를 위한 LifterLMS의 계정 편집 페이지에서 Stored Cross-Site Scripting(XSS) 취약점

광팔2 2021. 7. 2. 17:48
반응형

목차

1. 개요

   1.1. 취약점 분석 배경

   1.2. 취약점 정보

2. 분석

   2.1 콘텐츠 관리 시스템(CMS)

   2.2. 취약점

   2.3. 취약점 실행

   2.4. 취약점 분석

3. 결론

4. 대응 방안

5. 참고 자료

 

1. 개요

1.1. 취약점 분석 배경

OWASP  TOP 10 A7 의 Cross-Site Scripting(XSS) 취약점이다. Cross-Site Scripting(XSS)은 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 취약점 이며, 해당 사이트를 이용하는 다른 사용자의 세션 ID  및 쿠키정보 탈취, 악성코드 감염, 웹페이지 변조, 시스템 관리자 권한 탈취 등의 결과를 초래한다. 전세계 웹사이트에서 많이 사용되고 있는 CMS(콘텐츠관리 시스템)인 워드프레스에 사이버 공격이 다수 발생 중이며, 특히 편리성을 위한 플러그인에서 많은 취약점이 발생되고 있다. 최근 코로나-19 인해 온라인 강의를 많이 지원해주면서 워드프로세 플러그인 LifterLMS 보안 취약점(CVE-2021-24308) 공개되어 작성하게 되었다.

 

1.2. 취약점 정보

취약점 이름 CVE-2021-24308
공격 유형 Stroed Cross-Site Scripting(XSS)
테스트 공격환경 Kali, Firefox
피해 환경 Ubuntu, Apapche2, mysql
wordpress(5.7.2),
LifterLMS( 4.21.1)

2. 분석

2.1 콘텐츠 관리 시스템(CMS)

   2.1.1 WordPress

      워드프레스는 PHP와 MySQL 기반을 둔 웹페이지 제작 및 관리를 위한 콘텐츠 관리 시스템(CMS)의 하나이다. 워드프레스는       다양한 테마와 플러그인을 사용하여 개인 홈페이지부터 기업 홈페이지까지 쉽게 제작할 수 있다는 점에서 많이 사용자들           존재한다.

 

   2.2.2 LifterLMS

      LifterLMS는 워드프로세스 플러그인으로 온라인 학습 관리 시스템이다. 학습 관리 시스템은 구독 조작, 코스 콘텐츠 관리,

      퀴즈 생성, 결제 수락, 영상 제공 등을 통해 온라인을 학습 코스를 제공 할 수 있는 플러그인이다. 하지만, LifterLMS을 포함한       워드프레스 플러그인에는 많은 취약점이 존재하고있다. 플러그인을 개발 및 유지하는 업체에서 보안 업데이트를 지속적으로       제공하지 않아 잠재적인 보안 위협이 높다. 

 

2.2. 취약점

   2.2.1 Cross-Site Scripting(XSS)

      Cross-Site Scripting(XSS)이란 웹 애플리케이션에서 일어나는 취약점으로 관리자가 아닌 권한이 없는 사용자가 웹 사이트       또는 메일에 스크립트를 삽입하는 공격 기법으로 개발자가 고려하지 않은 기능을 수행하게 하며, 사용자의 정보(쿠키, 세션       등)을 탈취를 할 수 있다.

 

   2.2.2 Stored Cross-Site Scripting(XSS)

      Stored Cross-Site Scripting(XSS)이란 관리가자 아닌 사용자가 웹 서버에 악성 스크립트를 영구적으로 저장함으로 써,              사용자가 웹 페이지를 요청할 때 악성 스크립트가 포함된 응답 페이지를 사용자 측에서 실행되는 취약점이다.

그림1. Stored Cross-Site Scripting(XSS)

2.3. 취약점 실행

1. 공격자는 학생의 권한으로 강의를 듣고 있고, 현재 페이지는 공격자 학생 개인의 알림판이다.

(http://localhost/?mypagedashboard)

그림2.

 

2. 공격이 가능한 페이지 Edit Account(계정 수정) 클릭하여 정보를 DB에 저장할 수 있다.

(http://localhost/?mypagedashboard&edit-account)

그림3.

 

3. Edit Account 페이지에서 입력칸에 [ "><script>alert(/XSS/)</script> ] 스크립트를 입력 후 저장을 해준다.

(http://localhost/?mypagedashboard&edit-account)

그림4.

 

4. 관리자의 계정으로 학생 관리를 위해 접속 시 스크립트가 실행되는 것을 알 수 있다.

(http://localhost/wp-admin/admin.php?page=llms-reporting&tab=students&stab=information&student_id=2)

그림5.

 

2.4. 취약점 분석

burpsuit 툴을 통해 확인 결과 llms_billing_address_1 부분에 "><script>alert(/XSS/)</script> 스크립트 문이 정상적으로 입력되는 것을 볼 수 있다.

그림6.

 

 

3. 결론

위 취약점은 OWASP  TOP 10 A7 기재되어 있는 유명하고 매우 강력한 취약점 이다. Stored Cross-Site Scripting(CVE-2021-24308) 취약성은 관리자를 대상으로 하는 공격으로 관리자 계정 또는 관리 서버에 위험이 될 수 있다. 관리자 계정 획득 시에는 온라인 강의를 구독 중에 있는 사용자에게 피해를 입을 수 있으며, 관리 서버에 중지 시 정상적인 서비스 운영을 진행할 수 없다. 그러므로, Stored Cross-Site Scripting(CVE-2021-24308) 취약점은 매우 위험한 취약점이라 판단된다.

4. 대응 방안

해당 취약점이 존재하는 플러그인 LifterLMS 4.21.1 이하 버전을 사용하는 관리자는 현재 보안 패치가 완료된, LifterLMS 4.21.1 버전보다 상위 버전으로 업데이트 해야한다. 만약 업데이트를 수동으로 설정 또는 새로운 사용자라면 자동 업데이트를 반드시 적용해야 한다.

그림7. LifterLMS 업데이틑 설정

[  admin page  ->  plugin  ->  자동 업데이트 활성화  ]

 

더보기

LifterLMS 5.0.1 Download(13.3MB)

URL : https://ko.wordpress.org/plugins/lifterlms/

5. 참고 자료

참고 사이트

- https://www.exploit-db.com/exploits/49912

반응형
Comments