Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2017-5638 — This script is intended to validate Apache Struts 2 vulnerability (CVE-2017-5638), AKA Struts-Shock. | Kitploit
Инструменты/GitHubGitHub/readloud/cve-2017-5638
Vulnerability ScannersPayload GenerationExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubreadloud/cve-2017-5638

CVE-2017-5638

This script is intended to validate Apache Struts 2 vulnerability (CVE-2017-5638), AKA Struts-Shock.

Репозиторий
14 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2017-5638

Этот скрипт предназначен для проверки уязвимости Apache Struts 2 (CVE-2017-5638), также известной как Struts-Shock. Он полностью безвреден, так как не внедряет вредоносную нагрузку, а лишь добавляет HTTP-заголовок с именем 'STRUTS2-VALIDATION', чтобы определить, уязвима ли система.

Благодаря многопоточности он способен просканировать 2,5+ тысяч приложений по всему миру менее чем за 10 минут. Это делает его очень удобным для масштабной проверки корпоративных приложений.

cve-2017-5638

cve-2017-5638 Пример уязвимого сайта

Этот проект предназначен для демонстрации эксплуатации CVE-2017-5638 в образовательных целях. Дополнительная информация: https://cwiki.apache.org/confluence/display/WW/S2-045

Отказ от ответственности

Этот проект создан исключительно для образовательного и этического тестирования. Атака целей без предварительного взаимного согласия незаконна. Ответственность за соблюдение всех применимых местных, государственных и федеральных законов лежит на конечном пользователе. Разработчики не несут никакой ответственности и не отвечают за любое неправомерное использование или ущерб, причинённый этой программой.

Начало работы

  1. Запустите docker-контейнер:

docker run -d -p 8080:8080 jrrdev/cve-2017-5638:latest

  1. Скачайте скрипт эксплуатации на машину атакующего здесь

  2. Запустите скрипт на Python с машины атакующего:

python exploit.py http://<DOCKER_HOST>:8080/hello "ls -l"

Использование

Существует два способа запуска скрипта: с многопоточностью и без неё. Разница заключается только во времени выполнения. Для включения многопоточности достаточно передать параметр thread.

Первым параметром должен быть TXT-файл, содержащий все целевые URL-адреса, по одному на строку. Обратите внимание, что эти URL-адреса должны быть полными, например, https://target.com/admin/myStrutsPage.action

Вот пример использования без многопоточности:

root@kitploit:~
struts-shock-validation.py target_urls.txt

Теперь с многопоточностью:

root@kitploit:~
struts-shock-validation.py target_urls.txt thread

CVE-2017-5638

http://struts.apache.org/docs/s2-016.html https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017

Модуль эксплойта Metasploit Framework для эксплуатации Apache Struts через Content-Type Не тестировался на Windows-сервере, но был протестирован на Linux-сервере с использованием полезной нагрузки generic/shell_bind_tcp

CVE-2017-5638 PoC Code in Python | DORK: ext:action

Пример PoC-кода для CVE-2017-5638 | Apache Struts Exploit | DORK: ext:action

ИСПОЛЬЗОВАНИЕ: python struts.py https://victim.site dir

Изначально опубликованный Python-скрипт неправильно форматировал заголовок Content-Type. Я переписал заголовок Content-Type для правильного форматирования: Content-Type:%20{Exploit}. Также добавил логирование и Requests, после чего вывел свойства объекта в stdout.

SAMPLE OUTPUT

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

CVE-2017-5638

Table of Contents

  1. Overview
  2. Dependencies
  3. Usage

Overview

Этот проект является доказательством концепции уязвимости Apache Struts. Целью было создание программного обеспечения, способного генерировать и проверять случайные IP-адреса на описанную уязвимость.

Используйте этот проект на свой страх и риск и только в образовательных целях.

Dependencies

  • cURL

    • cURL используется для отправки сформированного заголовка на определённый IP-адрес и порт.
  • Nmap

    • Nmap используется для генерации случайных IP-адресов, на которых открыты порты 80 или 443.

Usage

Сгенерируйте случайные IP-адреса и сохраните их в текстовый файл.

root@kitploit:~
./get_ip.sh [Количество хостов для сканирования] [Какой порт сканировать] [Имя файла для записи вывода]
root@kitploit:~
./get_ip.sh 10000 80 output.txt

Проверьте конкретный IP-адрес на уязвимость.

root@kitploit:~
./struts_check.sh [ip address] [port]
root@kitploit:~
./struts_check.sh 127.0.0.1 80

Проверьте список IP-адресов на уязвимость.

root@kitploit:~
./main.sh [Text file containing IP adresses] [Port]
root@kitploit:~
./main.sh output.txt 443

Выполните команду на сервере без установленного патча уязвимости Apache Struts.

root@kitploit:~
./struts_attack.sh [IP Adres] [Command]
root@kitploit:~
./struts_attack.sh https://127.0.0.1 whoami

# CVE-2017-5638 PoC Code in Python | DORK: ext:action
Пример PoC-кода для CVE-2017-5638 | Apache Struts Exploit | DORK: ext:action

ИСПОЛЬЗОВАНИЕ: python struts.py https://victim.site dir

Изначально опубликованный Python-скрипт неправильно форматировал заголовок Content-Type.
Я переписал заголовок Content-Type для правильного форматирования: Content-Type:%20{Exploit}.
Также добавил логирование и Requests, после чего вывел свойства объекта в stdout.

SAMPLE OUTPUT

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-файл с тем же именем (дата/временная метка), что и папка выполнения.
Скачать инструмент