ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

     

Designed by Tistory.