
Скрипт автоматизации на Python, воспроизводящий CVE-2022-22963 — критическую инъекцию SpEL в Spring Cloud Function, позволяющую получить reverse shell в авторизованных лабораторных средах.
Образовательная автоматизация proof-of-concept для CVE-2022-22963, продемонстрированная в авторизованной лабораторной среде Hack The Box.
CVE-2022-22963 — это уязвимость Spring Cloud Function, связанная с заголовком
spring.cloud.function.routing-expression.
При уязвимых конфигурациях злоумышленник может использовать вычисление Spring Expression Language (SpEL) для вызова функциональности Java через механизм маршрутизации функций.
Этот репозиторий содержит Python-скрипт автоматизации, используемый для воспроизведения уязвимости в авторизованной среде CTF/лаборатории.
CVE ID: CVE-2022-22963 Affected component: Spring Cloud Function Affected versions: < 3.1.7, < 3.2.3 Fixed versions: 3.1.7, 3.2.3 Vulnerability class: Expression Language Injection (CWE-917) Attack vector: Network, unauthenticated (depends on deployment) Severity: Critical (CVSS 9.8 per NVD) References NVD entry: https://nvd.nist.gov/vuln/detail/CVE-2022-22963 Spring official advisory: https://spring.io/security/cve-2022-22963 Fix commit / release notes: see Spring Cloud Function GitHub releases
Функция маршрутизации Spring Cloud Function позволяет вызывающей стороне выбрать, какая функция должна обработать запрос, с помощью заголовка. До исправления значение этого заголовка передавалось в контекст вычисления SpEL без ограничений. Поскольку SpEL поддерживает вызов произвольных Java-классов и методов (например, T(java.lang.Runtime)), специально сформированное значение заголовка может привести к выполнению команд ОС на хосте, где работает уязвимое приложение.
Успешная эксплуатация позволяет неаутентифицированному злоумышленнику выполнять произвольные команды ОС с привилегиями процесса приложения, что может привести к полной компрометации хоста, горизонтальному перемещению или эксфильтрации данных в зависимости от конфигурации окружения.
Предоставленный код позволяет внедрить reverse shell на уязвимую цель
usage: exploit.py [-h] lhost lport url
Этот контент предоставлен только для авторизованных исследований в области безопасности и образовательных целей (например, лабораторные среды HTB). Не используйте эту информацию против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения.