-
[CVE-2018-20062] ThinkPHP 원격 코드 실행 취약점카테고리 없음 2020. 4. 15. 20:37
개요
중국 기업 탑씽크(TopThink)에서 개발한 개발프레임워크 ThinkPHP에서 발견된 취약점으로 index/\think\app.php의 invokefunction 함수의 매개변수를 조작하여 원격 코드 실행을 할 수 있습니다.
ThinkPHP의 사용 수치 중국 기업이 만든 프레임워크인 만큼 중국기업에서 많이 사용하는 수치를 볼 수 있습니다.
CVE-2018-20062 점수 접근 복잡성이 낮아 해킹에 사전지식이 없는 공격자도 인터넷에서 공격구문을 찾아 공격을 할 수 있습니다.
취약점 분석
1) 영향 받는 버전
CVE-2018-20062에 영향받는 버전 2) POC 코드분석
CVE-2018-20062 공격 구문 \를 필터링 하지 않아 \think\app를 컨트롤러로 인식하고 App의 invokrfunction 함수를 이용해 call_user_func&array&vars[0] 값에 원격 코드를 삽입하여 공격이 가능합니다.
/var/thinkphp/library/think/App.php App.php의 invokFunction 함수를 이용하는 것을 확인 할 수 있습니다.
3) 공격시연
shell_exec를 통한 shell 명령어 실행 CVE-2018-20062 공격 결과 Shell_exec를 이용하여 쉘 명령어를 실행한 것을 확인할 수 있습니다.
대응방안
1) ThinkPHP 최신버전 업데이트 적용
ThinkPHP 업데이트 내역 5.1 버전이상으로 업데이트를 하여 \를 필터링해 \think\app를 컨트롤러로 인식하지 않도록 패치를 진행합니다.
출처
https://www.cvedetails.com/cve/CVE-2018-20062/
https://fofa.so/result?qbase64=dGhpbmtwaHA%3D
https://blog.thinkphp.cn/869075