상세 컨텐츠

본문 제목

WordPress Plugin 취약점 분석

엔지니어일기/이것저것

by jaws99 2019. 9. 19. 14:07

본문

반응형

[실습 Plugin - WordPress Plugin Import Export WordPress Users 1.3.1]

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

 

WordPress Plugin Import Export WordPress Users 1.3.1 - CSV Injection

Become a Certified Penetration Tester Enroll in Advanced Web Attacks and Exploitation , the course required to become an Offensive Security Web Expert (OSWE)

www.exploit-db.com

 

SQL InjectionSQL을 Injection해서 프로그래밍 언어를 주입해서 DB를 접근하는 기법이라면, CSV Injection은 CSV파일에 Formula(공식)을 주입하는 기법이다.

 

DDE(Dynamic Data Exchange)를 이용한 이 방법은 사용자가 웹 사이트는 조심을 해도, 주로 사용하는 웹 사이트에서 받은 스프레드 시트의 보안 경고는 무시하는 경향을 악용하는 방법이다.

 

Microsoft Office 제품에서 주로 사용하므로 이 취약점은 Windows 10환경에서 작업했다.

 

WordPress에서 Guest로 로그인하고, 프로필 편집으로 들어간다.

 

 

=, +, -, @중 하나로 시작하고 뒤에 cmd|’ /C calc’!A0를 적고 나서 저장한다.

 

 

플러그인 창으로 돌아와서 Import Export Users를 눌러준다. 그리고 화면 왼쪽 아래에 있는 Export Users를 누르면 바로 csv파일을 다운받는 걸 확인할 수 있다.

 

 

실행시켜보면 보안 알림이 나오는데, 이 경우 엑셀파일에서 링크가 연결이 된 경우에 발생한다.

 

 

Cmd가 명령 프롬프트인걸 아는 사람이라면 수상하게 생각할 수 있다. 하지만 몰라서나 잘못보고 예 버튼을 눌렀다면 어떻게 될까?

 

 

예를 누르면 계산기가 실행된 걸 확인할 수 있다. display_name에서 2, first_name에서 1, last_name에서 1번 총 계산기가 4번 실행된 걸 확인했다.

 

테스트 상황이라 계산기를 실행시켰지만, powershell이나 bitsadmin을 사용해 원격지에 있는 다른 프로그램을 다운로드하고,실행시켰다면 악성코드에 감염될 수 있다.

 

다음 버전에서 패치한 소스다.

빨간 부분을 지우고, 초록 부분을 추가했다. Data=, +, -, @가 있을 경우 앞에 공백을 추가한다. 공백을 추가함으로 엑셀 수식이 실행되지 않고, DDE도 실행되지 않는다.

 

 

패치 후 똑같이 실행할 시 공백이 들어간다.

반응형

관련글 더보기