
CVE-2023-50164 (Apache Struts 2)에 대한 교육용 익스플로잇으로, 악성 파일 업로드를 통한 경로 탐색 및 원격 코드 실행을 시연하며, HackTheBox 실습 환경을 위해 설계되었습니다.
이 익스플로잇은 HackTheBox의 Strutted 랩을 위해 특별히 개발되었으며, Apache Struts 2의 CVE-2023-50164 취약점을 악용하는 것을 목표로 합니다. 이 결함은 파일 업로드 매개변수 처리의 오류를 통해 **경로 탐색(Path Traversal)**을 허용합니다. 이 익스플로잇은 공격자가 악성 파일 업로드를 수행하고 **원격 코드 실행(RCE)**을 얻을 수 있는 방법을 시연하기 위해 만들어졌습니다.
이 익스플로잇은 HackTheBox의 통제된 환경 내에서 교육 목적으로만 개발되었으며, 명시적 허가 없이 실제 시스템에서 사용해서는 안 됩니다. 동의 없이 취약점을 악용하는 것은 불법이며 비윤리적입니다.
이 익스플로잇의 목표는 Apache Struts 2, 특히 파일 업로드 엔드포인트의 결함이 다음과 같이 악용될 수 있음을 보여주는 것입니다:
CVE-2023-50164 취약점은 파일 업로드 매개변수의 잘못된 처리와 관련되어 있어, 공격자가 전송된 파일 이름을 조작하여 **경로 탐색(Path Traversal)**을 수행할 수 있습니다.
HTTP 매개변수 조작: 익스플로잇은 디렉터리 탐색 문자(../)를 포함하도록 HTTP 매개변수를 수정하여 승인되지 않은 폴더에 악성 파일을 업로드할 수 있게 합니다.
악성 파일 전송: 익스플로잇은 /upload.action 엔드포인트에 POST 메서드를 사용하여 악성 파일을 전송하며, HTTP 매개변수의 대소문자 구분 결함을 악용합니다.
원격 코드 실행: 공격자는 업로드 후 서버에서 실행될 악성 코드를 삽입할 수 있습니다.
다음은 취약점을 악용하는 데 사용할 수 있는 HTTP 요청의 예입니다:
POST /upload.action HTTP/1.1
Host: vulnerable-server.com
Content-Type: multipart/form-data; boundary=------------------------abcdef
--------------------------abcdef
Content-Disposition: form-data; name="Upload"; filename="img.png"
Content-Type: application/octet-stream
PNG
--------------------------abcdef
Content-Disposition: form-data;
Content-Type: application/octet-stream
../../shell.jsp
--------------------------abcdef--