
# Apache Struts 2 멀티스레드 취약점 검증기 (CVE-2017-5638) HTTP 헤더 주입을 통해 수천 개의 엔드포인트를 스캔하여 악성 페이로드 없이 Struts-Shock을 탐지하는 Apache Struts 2(CVE-2017-5638)용 멀티스레드 취약점 검증기입니다.
이 스크립트는 Apache Struts 2 취약점(CVE-2017-5638), 일명 Struts-Shock을 검증하기 위한 것입니다. 이 스크립트는 악성 페이로드를 주입하지 않고, 취약 여부를 검증하기 위해 'STRUTS2-VALIDATION'이라는 HTTP 헤더만 주입하므로 완전히 무해합니다.
멀티스레드 기능 덕분에 전 세계에 분산된 2.5k개 이상의 애플리케이션을 10분 이내에 실행할 수 있습니다. 따라서 대규모 엔터프라이즈 애플리케이션을 검증하는 데 매우 유용할 수 있습니다.
이 스크립트를 실행하는 방법은 두 가지입니다. 스레딩을 사용하거나 사용하지 않는 방법이며, 유일한 차이점은 실행 시간입니다. 스레딩 기능을 활성화하려면 thread 매개변수를 전달하기만 하면 됩니다. 첫 번째 매개변수는 모든 대상 URL을 한 줄에 하나씩 포함하는 TXT 파일이어야 합니다. 이러한 URL은 완전해야 합니다(예: https://target.com/admin/myStrutsPage.action)에 유의하세요.
다음은 스레딩 없이 사용하는 예제입니다:
struts-shock-validation.py target_urls.txt
이제 스레드 기능을 사용하는 예제입니다:
struts-shock-validation.py target_urls.txt thread
자동으로 results라는 폴더가 생성되며, 각 실행 시 실행 결과를 포함하는 날짜별 폴더가 생성됩니다. 스레딩이 활성화되면 thread_라는 이름의 파일이 스레드별로 생성되지만, 실행이 완료되면 모든 스레드 결과를 해당 실행 폴더와 동일한 이름(날짜/타임스탬프)의 단일 TXT 파일로 통합하므로 무시해도 됩니다.