
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6

발견자: Red Timmy Security
기술 분석:
보안 권고:
FlexPaper(PHP)의 change_config.php 파일은 관리자가 제대로 인증되었는지 확인하지 않으므로, 공격자가 서버에서 임의의 파일을 삭제할 수 있습니다:

unlink 함수를 사용하여 서버에서 파일을 삭제하는 경로를 나타냅니다공격자는 다음과 같은 요청을 구성하여 원하는 폴더의 파일을 삭제할 수 있습니다:
POST /flexpaper/php/change_config.php HTTP/1.1
Host: 127.0.0.1:8888
[...]
SAVE_CONFIG=1&SWF_Directory=config/
이 요청을 통해 공격자는 config 디렉터리의 모든 파일을 삭제합니다.
config/ 폴더의 모든 파일이 삭제되었으므로, FlexPaper는 애플리케이션이 한 번도 초기화된 적이 없다고 판단합니다:

따라서 공격자는 FlexPaper를 다시 설정할 수 있습니다. 하지만 왜일까요?
setup.php 내부에는 사용자가 POST로 전달한 매개변수를 PHP exec 명령에 사용하는 pdf2swfEnabled라는 함수가 있습니다. 이는 FlexPaper의 초기화(2번 항목 참조) 단계이므로 인증이 없습니다.

공격자는 다음과 같은 페이로드를 구성할 수 있습니다: ?step=4&PDF2SWF_PATH=id; 이는 exec(id; --version 2>&1)을 실행하게 됩니다.
공격자는 명령의 출력을 config 폴더 안의 파일로 리디렉션한 후 GET 요청을 보내 출력을 읽을 수 있습니다:

change_config.php의 시작 부분에 인증 확인이 추가되었습니다.
