[실습 Plugin - WordPress Plugin Import Export WordPress Users 1.3.1]
https://www.exploit-db.com/exploits/47303
SQL Injection이 SQL을 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도 실행되지 않는다.
패치 후 똑같이 실행할 시 공백이 들어간다.
OP.GG 크롤링하기 PyQt5-1 (0) | 2019.12.22 |
---|---|
Docker에서 WordPress upload_max_filesize 변경 (0) | 2019.09.25 |
컴퓨터구조 - 해저드 (0) | 2019.08.23 |
웹 보안 - SQL 인젝션 (0) | 2019.08.22 |
컴퓨터구조 - 파이프라이닝 (0) | 2019.08.17 |