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

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

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

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

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

Категории

Все категории
Loading categories
ats-realip-plugin-acl — Apache Traffic Server 10.2.0 — высокий уровень — удалённо — остаточные привилегии — fail-open ACL в плагине realip | Kitploit
Инструменты/GitHubGitHub/abraxas/ats-realip-plugin-acl
Аутентификация и авторизацияАнализ уязвимостейВеб-прокси и перехватВеб-безопасностьТестирование на ПроникновениеНеправильная КонфигурацияЛаборатории и Практика
GitHubabraxas/ats-realip-plugin-acl

ats-realip-plugin-acl

Apache Traffic Server 10.2.0 — высокий уровень — удалённо — остаточные привилегии — fail-open ACL в плагине realip

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

Популярное

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

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

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

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

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

Abraxas Labs - ats-realip-plugin-acl

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-realip-plugin-acl

ats-realip-plugin-acl

Класс: Остаточные привилегии Доступ: Удалённый

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Экспериментальный realip вместе с документированным acl.subjects: PLUGIN приводит к fail-open в remap @src_ip. Если realip не вызывает TSHttpTxnVerifiedAddrSet, _verified_addr остаётся AF_UNSPEC. Субъект PLUGIN никогда не равен nullptr, поэтому откат к PEER никогда не выполняется. ats_is_ip ложно, @src_ip пропускается, ip_matches остаётся истинным. Allow-list remap совпадает с недоверенным клиентом.

По умолчанию acl.subjects — PEER. realip отсутствует в стандартном plugin.config. Сессионный ip_allow.yaml никогда не читает PLUGIN. Классический X-Forwarded-For-от-кого-угодно закрыт (требуется trustedAddress; заголовок должен быть единственным адресом в формате inet_pton).

IDCVE пока нет
КлассОстаточные привилегии (fail-open ACL remap)
ДоступУдалённый (неаутентифицированный HTTP извне trustedAddress)
CWECWE-863
CVSSВысокий: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
ПродуктApache Traffic Server
Затронуто10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) экспериментальный realip + субъекты PLUGIN
Аутентификациянет. Клиент не входит в trustedAddress.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18770

Я зафиксировал публичный тег 10.2.0 и коммит b1df7334. Лаборатория — это собранный из исходников обратный прокси ats-10.2.0-lab:local на loopback. CONTROL PEER 403. PLUGIN 200. Сессионный PURGE по-прежнему 403.

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

Обратиться к ATS с загруженным экспериментальным realip.so и proxy.config.acl.subjects: PLUGIN (или PLUGIN,PEER). Remap разрешает @src_ip=10.0.0.0/8. Подключиться с адреса вне trustedAddress.

МетодТочка срабатыванияПривилегия
HTTP с 172.x вне trustedAddress к remap @src_ip=10.0.0.0/8realip пропускает TSHttpTxnVerifiedAddrSet (address_setter.cc:29-38); субъект PLUGIN всегда присутствует (UrlRewrite.cc:462-473); пропускает @src_ip, когда !ats_is_ip (:495-514)Целостность (доказано в лаборатории): ACL remap совпадает. Origin 200 ATS-REALIP-PLUGIN-ACL-WITNESS. CONTROL acl.subjects=PEER — 403.
То же плюс Client-IP: 10.1.2.3 от недоверенного узлаsimple.cc verify ложно; заголовок игнорируетсяЦелостность (доказано в лаборатории): по-прежнему fail-open 200. Это не подмена проверенного адреса.
Тот же клиент PURGEсессионный ip_allow.yaml PEERЗакрыто (доказано в лаборатории): 403. PLUGIN никогда не переписывает ACL соединения.
Хост без @src_ipкарта по умолчаниюЗакрыто (доказано в лаборатории): тело DENIED, без witness.

Доказано в лаборатории vs выведено логически: PLUGIN 200, PEER 403, PURGE 403, запрещённая карта, fail-open недоверенного заголовка — это лаборатория. То, что затем предоставляет origin, выведено из remap, который должен был быть только для 10/8.

Требуется: экспериментальный realip.so плюс acl.subjects=PLUGIN (или PLUGIN,PEER). Переназначение белого списка @src_ip. Не по умолчанию.

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

ПоверхностьЛаборатория
CONTROL acl.subjects=PEER403 на той же карте @src_ip
Сессия ip_allow.yamlатакующий PURGE 403
Карта без @src_ipDENIED
Пустой trustedAddressникогда не проверяет; всё ещё fail-open только когда subjects — PLUGIN
Классический XFF-от-кого-угоднозакрыт. Заголовок должен быть одиночным адресом inet_pton от доверенного пира
SNI ip_allowтолько PEER/PROXY; рукопожатие происходит до HTTP-заголовков
Subjects по умолчанию PEERостаток не применяется

Это не классический остаток «доверять X-Forwarded-For от кого угодно». Остаток — это документированный путь PLUGIN remap ACL.

Лаборатория

python3 ats-realip-plugin-acl-Abraxas-Labs.py

или

cd lab
./run.sh

Loopback 127.0.0.1:18770 (origin 18771). Проект Compose ats-realip-plugin-acl. Образ ats-10.2.0-lab:local. Sidecar атакующего 172.x. Свидетель ATS-REALIP-PLUGIN-ACL-WITNESS. Последняя строка:

SUCCESS ats-realip-plugin-acl control-http=403 poc-http=200 purge-http=403 denied-http=200 spoof-http=200 trusted-http=200 ATS-REALIP-PLUGIN-ACL-WITNESS

Исправление

Считать PLUGIN недоступным, когда get_verified_client_addr возвращает AF_UNSPEC (или заставить геттер возвращать nullptr, как в TSHttpTxnVerifiedAddrGet). Тогда сработает запасной вариант PEER. Не пропускайте @src_ip, когда указатель субъекта не равен null, но не является IP-адресом. При использовании списка разрешённых — отказывать по умолчанию (fail closed).

До этого оставляйте acl.subjects в значении PEER, если вы загружаете realip только для логирования. Не устанавливайте PLUGIN, если только каждый клиент, который может попасть под remap, уже не является доверенным прокси.

Ссылки

  • github.com/apache/trafficserver тег 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • plugins/experimental/realip/address_setter.cc
  • src/proxy/http/remap/UrlRewrite.cc PerformACLFiltering
  • include/proxy/ProxyTransaction.h get_verified_client_addr
  • руководство администратора realip
  • CWE-863
Скачать инструмент