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

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

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

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

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

Категории

Все категории
Loading categories
ats-esi-unix-recvport — Apache Traffic Server 10.2.0 — высокий уровень — удалённо — SSRF — ESI unix recvport | Kitploit
Инструменты/GitHubGitHub/abraxas/ats-esi-unix-recvport
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьЛаборатории и Практика
GitHubabraxas/ats-esi-unix-recvport

ats-esi-unix-recvport

Apache Traffic Server 10.2.0 — высокий уровень — удалённо — SSRF — ESI unix recvport

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

Популярное

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

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

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

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

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

Abraxas Labs - ats-esi-unix-recvport

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-esi-unix-recvport

ats-esi-unix-recvport

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

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Плагин ESI FetchSM PluginVC сообщает порт назначения 0. Remap трактует порт 0 как UDS и переписывает схему include на http+unix, чтобы она соответствовала правилам map_with_recv_port http+unix://, предназначенным только для UDS-листенеров. Тогда внешне безобидный esi:include на http://www.example.com/secret попадает на unix-socket origin. TCP GET /secret остаётся на TCP-карте. CONTROL без unix recv-port map встраивает TCP origin (без свидетеля). Схема include http+unix сама по себе является BAD_SCHEME в валидаторе июля 2026.

Обычный esi.so плюс один map этого не достигает. Нужны ESI и хотя бы одна строка map_with_recv_port http+unix://. По умолчанию remap_required: 1 и number_of_redirections: 0.

Это не CVE-2026-58178 (приватные литералы, file://, вложенные комментарии, ограничение глубины закрыто).

IDCVE пока нет
КлассSSRF
ДоступУдалённый (неаутентифицированный HTTP к ESI vhost)
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) ESI плюс map_with_recv_port http+unix
Аутентификациянет. Плагин ESI. Recv-port unix map.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18750 / 18751. Образ ats-10.2.0-lab:local.

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

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

Неаутентифицированный HTTP к ESI vhost, чей remap содержит map_with_recv_port http+unix://. Include src, на который атакующий может влиять (скомпрометированный origin, сохранённый ESI или $(HTTP_HEADER{...})).

МетодSinkПривилегия
Неаутентифицированный GET /page ESI include http://www.example.com/secretПорт назначения FetchSM 0 совпадает с map_with_recv_port http+unix://www.example.com/ (RemapProcessor.cc:87-114, PluginVC.h:274-278)Разведка / SSRF (доказано в лаборатории): тело клиента встроило ATS-ESI-UNIX-RECVPORT-WITNESS из UDS origin.
То жезапись первого порядка / shellЦелостность: нет. Нет записи первого порядка. Нет shell.
CONTROL GET /page без unix recv-port mapTCP origin includeЗакрыто (доказано в лаборатории): встраивает TCP-ORIGIN-OK, без свидетеля.
TCP-клиент GET /secret на poc vhostTCP mapЗакрыто (доказано в лаборатории): TCP-ORIGIN-OK, без свидетеля.

Доказано в лаборатории vs выведено: control без свидетеля, poc-страница со свидетелем, poc TCP /secret без свидетеля: лаборатория. Влияние на src через сохранённый ESI или раскрытие заголовка — это документированная модель доверия ESI, здесь заново не доказывалась. Include в лаборатории — статический http://www.example.com/secret на /page.

Требуется: плагин ESI плюс map_with_recv_port http+unix. По умолчанию remap_required: 1. number_of_redirections: 0.

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

ПоверхностьЛаборатория
CONTROL без unix recv-port mapcontrol-no-witness=yes, встраивает TCP-ORIGIN-OK
TCP-клиент GET /secretpoc-tcp-secret-no-witness=yes
Include-схема http+unixвалидатор BAD_SCHEME
file://, приватные литералы, вложенные комментарии, ограничение глубиныCVE-2026-58178 закрыт
Denylist имён хостов без DNSзадокументировано; не работает при remap_required: 1
Промах remap_required: 1404
number_of_redirections: 0Следование Location отключено

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

PluginVCCore обнуляет passive_addr_struct. PluginHttpConnectInternal устанавливает только active_addr (исходный клиент). HttpSM из FetchSM работает на пассивном PluginVC. attach_client_session копирует netvc->get_local_addr() в client_info.dst_addr. Пассивный локальный адрес — это обнулённая структура. host_order_port() равен 0.

Поиск remap (RemapProcessor.cc:87-114): порт 0 означает UDS. Схема переписывается http -> http+unix, так что map_with_recv_port http+unix:// совпадает. Модульный тест test_RemapRules.cc:237-240 это документирует.

Июльский валидатор отклоняет include-схему http+unix. Он не отклоняет include с http://, чей внутренний remap-переход стал unix из-за нулевого порта назначения.

Неверные пути: считать типичный esi.so + один map этим остатком (CONTROL доказывает, что это не так); регистрировать denylist имён хостов без DNS (задокументировано, не работает при remap_required=1); утверждать, что file:// всё ещё работает; ожидать, что TCP /secret будет следовать unix-карте.

Театр: обратная оболочка. Оракул — встроенный свидетель от UDS-источника, при этом TCP /secret остаётся TCP.

Лаборатория

python3 ats-esi-unix-recvport-Abraxas-Labs.py

или

cd lab
./run.sh

Loopback poc 127.0.0.1:18750, control 127.0.0.1:18751. Проект Compose ats-esi-unix-recvport. Образ ats-10.2.0-lab:local. Свидетель ATS-ESI-UNIX-RECVPORT-WITNESS. Последняя строка:

SUCCESS ats-esi-unix-recvport control-no-witness=yes poc-page-witness=yes poc-tcp-secret-no-witness=yes ATS-ESI-UNIX-RECVPORT-WITNESS

Исправление

Не следует рассматривать dest port 0 у FetchSM PluginVC как совпадение с recv-port для UDS. Сохраняйте map_with_recv_port http+unix:// для настоящих UDS-слушателей. ESI-включения http://host/ должны оставаться в TCP-карте, даже если для этого хоста существует правило recv-port http+unix.

Ссылки

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