반응형
안녕하세요.
ThinkPHP 원격 코드 실행 취약점에 대해서 알아보겠습니다.
ThinkPHP는 중국 Topthink에서 동적 웹 애플리케이션 개발을 위해 개발한 Apache2 기반의 PHP framework이다.
실제로 ThinkPHP는 php개발 속도를 크게 줄여주기에 중국권에서 많이 사용되고 있다.
ThinkPHP는 컨트롤러 클래스(app)에 invokefunction 함수에 매개변수에 원격 코드를 삽입하여 공격하는 형태이다.
공격코드
/thinkphp/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array & vars[0]=system&vars[1][] =ls% 20-l
위 코드에서 '\'를 필터링하지 못해 컨트롤러 클래스(app)에 접근하여 invokefunction함수를 호출
이 후 call_user_fuc_array&vars[0] 매개변수에 원격 코드를 삽입하여 시스템을 제어한다.
대응방안
- Think PHP를 최신 버전으로 업데이트한다.
- '\'문자열을 필터링하여 컨트롤러 클래스에 접근불가 하도록 한다.
감사합니다.
반응형
'Security > Vulnerability' 카테고리의 다른 글
Apache Log4j 2 RCE 취약점(CVE-2021-44228) (0) | 2021.12.12 |
---|---|
Sudo 권한상승 취약점(CVE-2021-3156) (0) | 2021.02.10 |
Logjam (CVE-2015-4000) (0) | 2020.08.01 |
DROWN (CVE-2016-0800) (0) | 2020.08.01 |
NTP Amplification DDoS Attack (CVE-2013-5211) (0) | 2020.08.01 |