web-0x03
CVE-2018-9034 1Day Test
안녕하세요 hackyu입니다.
오늘은 Wordpress 환경에서의 검색 기능을 제공하는 Relevanssi Search Plugin 4.0.4 이전버전(Version 4.0.4 포함)에서 발생한 CVE-2018-9034 XSS(Cross Site Scripting - Reflected) 취약점에 대한 포스팅입니다.
취약점 분석
- 환경구성
- Apache 2.4.18
- PHP 7.0.30
- Wordpress 4.9.4
- Wordpress Relevanssi Search Plugin 4.0.4
- Apache 2.4.18
다음은 취약점이 발생한 Relevanssi Search Plugin lib/interface.php를 확인해보면, tab 파라미터에 스크립트를 삽입하여 요청하는 경우 취약점이 발생이 가능한 것을 확인할 수 있습니다.
취약점 공격 테스트
제일 기본적으로 스크립트가 정상적으로 구동이 되는지
<script>alert('TEST');</script>
를 tab 파라미터로 요청한 결과로 스크립트가 구동되지 않고, 기본적으로 스크립트에 사용될 수 있는 ‘, “ 등 Escape 문자인 경우 ‘'가 붙어 응답되어 스크립트가 정상적으로 구동되지 않았고, 스크립트 삽입 시 Escape문자를 사용할 수 없는 것을 확인할 수 있습니다.
Escape 문자를 사용할 수 없는 경우 다음과 그림과 같이 Javascript의 substring(), String()를 이용하여 ‘/’(인덱스 start, end)를 제외한 문자열을 다시 변수 x에 대입하여 원하는 문자열을 이용하여 스크립트를 사용할 수 있습니다.
공격 시 사용되는 tab 파라미터를 통한 Payload는 다음과 같습니다.
Server IP/wordpress/wp-admin/options-general.php?page=relevanssi/relevanssi.php&tab='><script>var x = String(/hackyu CVE-2018-9034 TEST/);x = x.substring(1, x.length-1);alert(x)</script>
위의 Payload를 이용하여 다음과 같이 정상적으로 스크립트가 실행되는 것을 확인할 수 있습니다.
- 패치 및 대응방안
-Update to version
- References
https://www.exploit-db.com/exploits/44366
https://ppbuz.com/8644
https://nvd.nist.gov/vuln/detail/CVE-2018-9034
https://pluginarchive.com/wordpress/relevanssi/v/4-0-4
https://downloads.wordpress.org/plugin/relevanssi.4.0.4.zip