CVE-2024-22243|Уязвимость URL-адреса Spring Framework, связанная с неправильным анализом (атака перенаправления и атака SSRF)
CVE-2024-22243|Уязвимость URL-адреса Spring Framework, связанная с неправильным анализом (атака перенаправления и атака SSRF)

0x00 Предисловие

Spring — это легкая платформа с открытым исходным кодом в области программирования Java EE.

Основные функции среды Spring можно использовать для разработки любого приложения Java, но для создания веб-приложений на платформе Java EE требуются расширения.

Цель Spring Framework — упростить использование разработки J2EE, продвигая передовые методы программирования за счет использования модели программирования на основе POJO.

0x01 Описание уязвимости

В затронутой версии, поскольку UriComponentsBuilder неправильно фильтрует квадратные скобки `[` в информации о пользователе при обработке URL-адресов, злоумышленники могут создавать вредоносные URL-адреса, содержащие квадратные скобки, чтобы обойти проверку имени хоста.

Когда приложение использует UriComponentsBuilder.fromUriString() для анализа предоставленного извне URL-адреса (например, через параметр запроса) и выполняет проверку на узле анализируемого URL-адреса, оно может быть уязвимо для атак с открытым перенаправлением и атак SSRF, что приводит к фишингу и Ожидание проверки внутренней сети.

0x02 номер CVE

CVE-2024-22243

0x03 затронутая версия

Spring Framework 6.1.0 - 6.1.3

Spring Framework 6.0.0 - 6.0.16

Spring Framework 5.3.0 - 5.3.31

и более старые неподдерживаемые версии.

0x04 Подробности об уязвимости (Отсеть)

https://github.com/threedr3am/learnjavabug/commit/65a6bd4f72c985b4f31821a732e7da39050910ac

ссылка на ссылку 0x05

https://spring.io/security/cve-2024-22243

https://github.com/spring-projects/spring-framework/commit/7ec5c994c147f0e168149498b1c9d4a249d69e87

boy illustration
Typecho отображает использование памяти сервера
boy illustration
Как вставить элемент перед указанным ключом в ассоциативный массив в PHP
boy illustration
swagger2 экспортирует API как текстовый документ (реализация Java) [легко понять]
boy illustration
Выбор фреймворка nodejs Express koa egg MidwayJS сравнение NestJS
boy illustration
Руководство по загрузке, установке и использованию SVN «Рекомендуемая коллекция»
boy illustration
Интерфейс PHPforwarding_php отправляет запрос на получение
boy illustration
Создавайте и защищайте связь в реальном времени с помощью SignalR и Azure Active Directory.
boy illustration
ВичатПубличная платформаразвивать(три)——ВичатQR-кодгенерировать&Сканировать кодсосредоточиться на
boy illustration
[Углубленное понимание Java IO] Используйте InputStreamReader для чтения содержимого файла и легкого выполнения задач преобразования текста.
boy illustration
сравнение строк PHP
boy illustration
9 сценариев асинхронного сбоя @Async
boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python
boy illustration
Рекомендации по облегченному артефакту развязки внутренних компонентов Spring Event (событие Spring)
boy illustration
Go: Лесоруб-лесоруб на колесах Введение
boy illustration
Основы серверной разработки: технология кэширования, которую должен освоить каждый программист
boy illustration
Java Advanced Collections TreeSet: что это такое и зачем его использовать?
boy illustration
Оказывается, у команды go build столько знаний
boy illustration
Node.js
boy illustration
Анализ исходного кода, связанный с запланированными задачами версии ruoyi-vue (7), то есть анализ модуля ruoyi-quartz.
boy illustration
Вход в систему с помощью скан-кода WeChat (1) — объяснение процесса входа в систему со скан-кодом, получение авторизованного QR-кода для входа.
boy illustration
HikariPool-1 — обнаружено отсутствие потока или скачок тактовой частоты, а также конфигурация источника данных Hikari.
boy illustration
Сравнение высокопроизводительной библиотеки JSON Go
boy illustration
Простое руководство по извлечению аудио с помощью FFmpeg
boy illustration
Подсчитайте количество строк кода в проекте
boy illustration
Spring Boot элегантно реализует многопользовательскую архитектуру: концепции и практика
boy illustration
Как интегрировать функцию оповещения корпоративного WeChat в систему планирования xxl-job
boy illustration
SpringBoot интегрирует отправку сообщений через веб-сокет в режиме реального времени
boy illustration
Краткий анализ основных библиотек журналов в Go: узнайте, как интегрировать функции вращения и резки бревен на уровне проектирования.
boy illustration
Реализация API-шлюза с нуля-Golang
boy illustration
[Разговорный сайт] Как Springboot получает значения свойств из файлов конфигурации yml или свойств