
Apache Struts에서 CVE-2023-50164(CVE: 9.8)로 식별된 심각한 보안 취약점이 발견되었으며, 이로 인해 공격자가 파일 업로드 매개변수를 조작하여 인가되지 않은 경로 탐색(path traversal) 및 원격 코드 실행(RCE)을 초래할 수 있습니다.
Apache Struts에서 CVE-2023-50164(CVE: 9.8)로 식별된 심각한 보안 취약점이 발견되었습니다. 이 취약점으로 인해 공격자는 파일 업로드 매개변수를 조작하여 무단 경로 탐색 및 원격 코드 실행(RCE)으로 이어질 수 있습니다.
이 익스플로잇 스크립트는 vsociety의 CVE 분석을 위해 작성되었습니다.
데모 목적으로 간단한 더미 앱이 개발되었습니다(struts-app 폴더 참조).
Tomcat이나 다른 서블릿에 배포하거나 mvn jetty:run으로 실행할 수 있습니다.
후자의 경우 9999 포트에서 앱에 접근할 수 있습니다.
이 익스플로잇 스크립트는 WAR 웹셸을 업로드하는 방식으로 공격하므로 앱이 Tomcat에 배포된 경우에만 동작합니다.
그러나 동일한 취약점은 사용된 기술과 기타 상황에 따라 다양한 다른 공격 경로로 악용될 수 있습니다.
익스플로잇 앱을 Docker에 배포합니다:
docker container stop exploit
docker build -t exploit .
docker run -d --rm --name exploit -p 8080:8080 exploit
pip 패키지를 설치합니다:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
그런 다음 익스플로잇 스크립트를 실행합니다:
Docker의 경우:
python3 exploit.py --url http://localhost:8080/upload-1.0.0/upload.action
Vagrant의 경우:
python3 exploit.py --url http://192.168.56.25:8080/upload-1.0.0/upload.action
익스플로잇에는 파일 업로드 기능이 구현된 전체 URL이 필요합니다.
이 익스플로잇 스크립트는 연구와 효과적인 방어 기술 개발의 목적으로만 제작되었습니다. 악의적이거나 허가되지 않은 활동에 사용하기 위한 것이 아닙니다. 스크립트의 작성자와 소유자는 이 소프트웨어의 오용 또는 이로 인한 손해에 대해 어떠한 책임도 지지 않습니다. 사용자는 이 소프트웨어를 책임감 있게, 그리고 적용 가능한 법률과 규정에 따라서만 사용해야 합니다. 책임감 있게 사용하십시오.