
CVE-2019-11043을 대상으로 한 Nginx + php-fpm 원격 코드 실행 익스플로잇. 취약한 구성을 테스트하기 위한 Go 및 사전 컴파일된 익스플로잇 바이너리를 포함합니다.
취약점 설명
Nginx에서 fastcgi_split_path_info가 %0a를 포함한 요청을 처리할 때 줄바꿈 문자 \n을 만나면 PATH_INFO가 비어 있게 됩니다. php-fpm은 PATH_INFO가 비어 있는 경우 논리적 결함이 존재합니다. 공격자는 정교한 구성을 통해 원격 코드 실행을 유도할 수 있습니다.
영향 범위
Nginx + php-fpm 서버에서 다음과 같은 구성을 사용하는 경우 원격 코드 실행 취약점이 존재할 수 있습니다.
location ~ [^/].php(/|$) { fastcgi_split_path_info ^(.+?.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } }
해결 방안
정상적인 업무에 영향을 주지 않는 범위 내에서 Nginx 구성 파일에서 다음 구성을 삭제하십시오:
fastcgi_split_path_info ^(.+?.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info;
두 개의 exp가 포함되어 있습니다. 하나는 Go 언어이고, 다른 하나는 컴파일된 exp입니다.
./phuip-fpizdam http://192.168.93.131:8080/index.php