
이 스크립트는 Apache Struts 2 취약점(CVE-2017-5638), 일명 Struts-Shock을 검증하기 위한 것입니다.
이 스크립트는 Apache Struts 2 취약점(CVE-2017-5638), 일명 Struts-Shock을 검증하기 위한 것입니다. 악성 페이로드를 주입하지 않고 오직 'STRUTS2-VALIDATION'이라는 HTTP 헤더만 주입하여 취약한지 여부를 검증할 수 있으므로 완전히 무해합니다.
멀티스레드 기능 덕분에 전 세계에 분산된 2.5k개 이상의 애플리케이션을 10분 이내에 실행할 수 있습니다. 따라서 대규모 엔터프라이즈 애플리케이션을 검증하는 데 매우 유용합니다.
cve-2017-5638 취약한 사이트 샘플
이 프로젝트는 교육 목적으로 CVE-2017-5638 악용을 시연하기 위한 것입니다. 자세한 내용은 https://cwiki.apache.org/confluence/display/WW/S2-045를 참조하세요.
이 프로젝트는 교육 및 윤리적 테스트 목적으로만 제작되었습니다. 사전 상호 동의 없이 대상을 공격하는 것은 불법입니다. 모든 해당 지역, 주 및 연방 법률을 준수할 책임은 최종 사용자에게 있습니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램으로 인해 발생한 오용이나 피해에 대해 책임지지 않습니다.
docker run -d -p 8080:8080 jrrdev/cve-2017-5638:latest
공격자 머신에 익스플로잇 스크립트를 여기에서 다운로드합니다.
공격자 머신에서 Python 익스플로잇 스크립트를 실행합니다:
python exploit.py http://<DOCKER_HOST>:8080/hello "ls -l"
이 스크립트를 실행하는 방법은 스레딩 사용 여부에 따라 두 가지가 있으며, 유일한 차이는 실행 시간입니다. 스레딩 기능을 활성화하려면 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
http://struts.apache.org/docs/s2-016.html https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017
Apache Struts Content-Type 취약점을 위한 Metasploit Framework 익스플로잇 모듈 Windows 서버에서는 테스트하지 않았지만 generic/shell_bind_tcp 페이로드를 사용하여 Linux 서버에서 테스트했습니다.
CVE-2017-5638용 예제 PoC 코드 | Apache Struts 익스플로잇 | DORK: ext:action
사용법: python struts.py https://victim.site dir
게시된 초기 Python 스크립트는 Content-Type 헤더를 올바르게 형식화하지 않았습니다. Content-Type:%20{Exploit}을 올바르게 형식화하도록 Content-Type 헤더를 다시 코딩했습니다. 또한 로깅과 Requests를 추가하고 객체 속성을 stdout으로 덤프했습니다.
샘플 출력
Check for CVE-2017-5638 by XSS.Cx
Volume in drive D has no label. Volume Serial Number is 2A7B-A245 Directory of d:\Program Files\Apache Software Foundation\Tomcat 9.0
자동으로 results라는 폴더를 생성하며, 각 실행 시 실행 결과를 포함하는 날짜가 표시된 폴더를 생성합니다. 스레딩이 활성화된 경우 thread_라는 이름의 스레드별 파일을 생성하는데, 실행이 완료되면 모든 스레드 결과를 실행 폴더와 동일한 이름(날짜/타임스탬프)의 단일 TXT 파일로 통합하므로 무시해도 됩니다.