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

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

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

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

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

Категории

Все категории
Loading categories
ats-ipallow-method-case — Apache Traffic Server 10.2.0 — высокий уровень — удалённо — остаточные привилегии — регистр метода ip_allow | Kitploit
Инструменты/GitHubGitHub/abraxas/ats-ipallow-method-case
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьСетевая безопасностьЛаборатории и Практика
GitHubabraxas/ats-ipallow-method-case

ats-ipallow-method-case

Apache Traffic Server 10.2.0 — высокий уровень — удалённо — остаточные привилегии — регистр метода ip_allow

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

Популярное

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

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

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

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

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

Abraxas Labs - ats-ipallow-method-case

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-ipallow-method-case

ats-ipallow-method-case

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

Apache Traffic Server 10.2.0 (b1df7334) — Apache Software Foundation

Методы HTTP/1 со смешанным регистром обходят запрет по умолчанию из ip_allow.yaml для PURGE/PUSH/DELETE/TRACE и TUNNEL к remap-источнику от имени uid ATS. Разбор YAML и @method в remap нечувствителен к регистру. H1 выполняет токенизацию, затем strncmp байтов запроса и возвращает -1 при несовпадении регистра. Инверсия запрета трактует этот неизвестный токен как разрешённый. HTTP/2 :method нечувствителен к регистру и остаётся запрещённым. PURGE/PUSH кэша по-прежнему требуют известного wksidx, поэтому смешанный регистр не очищает и не отправляет кэш.

Это остаток ACL методов входящих запросов по умолчанию, а не CVE-2026-33267 (hop-by-hop) и не инвертированный ACL remap для пустого нестандартного метода (закрыт на этом пине).

IDCVE пока нет
КлассОстаточная привилегия
ДоступУдалённый (неаутентифицированный HTTP/1 от клиента не с loopback)
CWECWE-178, CWE-863
CVSSВысокий: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
ПродуктApache Traffic Server
Затронуто10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) обратный прокси по умолчанию
Аутентификациянет. ip_allow.yaml по умолчанию. remap_required: 1 плюс один map.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18710. Образ ats-10.2.0-lab:local.

Я зафиксировал тег 10.2.0, коммит b1df7334b39a878971c376da849e8da4984918b6. Последний стабильный на 17 авг. 2026. Образ, собранный из исходников, не гаджет.

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

Достичь типичного обратного прокси (remap_required: 1 плюс один map) по HTTP/1 с не-loopback адреса. 127.0.0.1 разрешён для ALL. Пустой plugin.config. ip_allow.yaml по умолчанию.

МетодПриёмникПривилегия
HTTP/1 delete / DeLeTe после remap из sidecar 172.xhdrtoken_method_tokenize, затем process_quick_http_filter, затем TUNNEL METHOD_NOT_SUPPORTED (HdrToken.cc:512-528, HttpTransact.cc:6855-6858)Целостность (доказано в лаборатории): источник 200 DELETED ATS-IPALLOW-METHOD-CASE-WITNESS. Верхний регистр DELETE — 403. Метод источника от имени uid ATS.
HTTP/1 traceтот же TUNNELРазведка (доказано в лаборатории): источник 200 TRACE-OK. ATS не строит эхо TRACE (wksidx не TRACE). Верхний регистр TRACE — 403.
HTTP/1 purge / pushTUNNEL неизвестного метода, не операция кэшаЦелостность (кэш ATS): закрыто (доказано в лаборатории). Источник увидел PURGE-ORIGIN / PUSH-ORIGIN. Операции кэша требуют известного wksidx. push_method_enabled по умолчанию 0.
Тот же запрос со смешанным регистромодин дополнительный переход к источникуДоступность (доказано в лаборатории): не завершение процесса.

Доказано в лаборатории vs выведено: запрет верхнего регистра, TUNNEL DELETE/TRACE со смешанным регистром, закрытие PURGE/PUSH кэша: лаборатория. DELETE/TRACE к источнику — только если этот источник сворачивает регистр метода (IIS / некоторые Java). Источники, чувствительные к регистру по RFC 9110 (nginx, httpd, Go), отвечают 501. Источник в лаборатории сворачивает регистр.

Требуется: HTTP/1 от клиента, не являющегося loopback. remap_required: 1 плюс один map. По умолчанию входящие PURGE/PUSH/DELETE/TRACE запрещены. HTTP/2 :method без учёта регистра по-прежнему запрещён.

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

ПоверхностьЛаборатория
Точный регистр DELETE / TRACE с 172.x403, origin не затронут
HTTP/2 :method в смешанном регистретокенизация без учёта регистра, всё равно запрещено
purge / push в смешанном регистре как операции кэша ATSorigin увидел глагол; путь кэша остался закрыт
Запрет назначения CONNECT (0.0.0.0/8, RFC1918, link-local, ::ffff:0:0/96)исходящий по умолчанию ip_allow.yaml
Промах remap_required: 1404, а не открытый релей
Инвертированный ACL remap с пустым nonstandardисправление из CHANGELOG удержалось
CVE-2026-33267 hop-by-hop / удаление @закрыто на этом пине

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

По умолчанию ip_allow.yaml — это штатный ACL удалённых методов. Загрузка YAML использует hdrtoken_tokenize (без учёта регистра). Затем инверсия DENY устанавливает _method_mask = ALL & ~listed и _deny_nonstandard_methods = true с пустым списком nonstandard (IPAllow.cc:545-548).

Разбор HTTP/1 выполняет токенизацию через hdrtoken_method_tokenize. DFA нечувствителен к регистру; затем помощник выполняет strncmp байтов запроса с известной строкой и возвращает -1 при несовпадении регистра:

retval = hdrtoken_tokenize(string, string_len, &string_out);
if (retval >= 0) {
  if (strncmp(string, string_out, string_len) != 0) {
    // Not a case match
    retval = -1;
  }
}

EndRemapRequest запрашивает isNonstandardMethodAllowed для method == -1 (IPAllow.h:365-376). Пустой набор нестандартных методов плюс запрет нестандартных даёт !method_in_set, поэтому метод со смешанным регистром разрешён. is_this_http_method_supported(-1) возвращает false. METHOD_NOT_SUPPORTED устанавливает ProxyMode_t::TUNNELLING и возвращает true. Документация говорит, что ATS пересылает неизвестные методы на origin. Поиск в кэше пропускается в режиме TUNNELLING.

HTTP/2 :method проходит через HTTPHdr::method_set -> hdrtoken_tokenize без проверки регистра. H2 delete превращается в DELETE и запрещается. Этот остаток относится к HTTP/1.

Неверные пути: считать, что чувствительные к регистру origin из RFC 9110 делают список запретов бесполезным (кэш ATS PURGE/PUSH остаются закрытыми; origin DELETE/TRACE — это и есть остаток); выполнять curl с 127.0.0.1 (разрешает ALL); заявлять об очистке кэша; повторно подавать как hop-by-hop.

Театральность: обратная оболочка. Оракул — это строка-свидетель на origin после 403 в верхнем регистре.

Лаборатория

python3 ats-ipallow-method-case-Abraxas-Labs.py

или

cd lab
./run.sh
Скачать инструмент