/ POSTS

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
- CVE-2018-9034 Flow -


다음은 취약점이 발생한 Relevanssi Search Plugin lib/interface.php를 확인해보면, tab 파라미터에 스크립트를 삽입하여 요청하는 경우 취약점이 발생이 가능한 것을 확인할 수 있습니다.

- relevanssi.php -


- interface.php -


취약점 공격 테스트

제일 기본적으로 스크립트가 정상적으로 구동이 되는지 <script>alert('TEST');</script>를 tab 파라미터로 요청한 결과로 스크립트가 구동되지 않고, 기본적으로 스크립트에 사용될 수 있는 ‘, “ 등 Escape 문자인 경우 ‘'가 붙어 응답되어 스크립트가 정상적으로 구동되지 않았고, 스크립트 삽입 시 Escape문자를 사용할 수 없는 것을 확인할 수 있습니다.

- XSS 구문 삽입 테스트 Escape문자로 인해 실행되지 않음 -


Escape 문자를 사용할 수 없는 경우 다음과 그림과 같이 Javascript의 substring(), String()를 이용하여 ‘/’(인덱스 start, end)를 제외한 문자열을 다시 변수 x에 대입하여 원하는 문자열을 이용하여 스크립트를 사용할 수 있습니다.

- Javascript 테스트 -


공격 시 사용되는 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를 이용하여 다음과 같이 정상적으로 스크립트가 실행되는 것을 확인할 수 있습니다.

- XSS 시도 및 결과 -


  • 패치 및 대응방안
    -Update to version

- Relevanssi Version 4.0.4(좌), 4.0.5(우) -


  • 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