AIKraft/Skills/request-smuggling

request-smuggling

Тестирование HTTP request smuggling и десинхронизации. Применяется, когда фронтенд-прокси, CDN или балансировщики расходятся с origin в фрейминге сообщений (Content-Length vs Transfer-Encoding), при трансляции HTTP/2→HTTP/1 или исследовании client-side desync через browser fetch pipelines.

yaklang official Другое ★ 2.4k

Что делает навык

Skill предоставляет экспертные техники атак на десинхронизацию HTTP-запросов (HTTP Request Smuggling), выявляя расхождения в интерпретации границ сообщений между фронтенд-прокси, CDN и origin-сервером. Он решает задачу обнаружения уязвимостей, связанных с несогласованностью фрейминга (Content-Length vs Transfer-Encoding) и трансляции протоколов, а не просто инъекции заголовков.

Когда применять

  • Когда есть подозрение, что CDN или reverse-proxy и origin-сервер по-разному определяют конец запроса.
  • При аномальном склеивании запросов во время понижения версии протокола с HTTP/2 на HTTP/1.
  • Для исследования client-side desync через конвейерные запросы браузера (browser fetch pipelines).
  • При использовании Apache HttpClient <= 4.5.9, где требуется обход стандартных механизмов через инъекцию специфичных символов.

Как работает

  1. Определить тип десинхронизации, например, CL.TE, где фронтенд доверяет Content-Length, а бэкенд — Transfer-Encoding: chunked.
  2. Сформировать запрос с очень коротким значением Content-Length, чтобы фронтенд принял его как конец сообщения, в то время как бэкенд продолжит парсинг chunked-данных.
  3. Использовать техники обфускации TE.TE и понижения HTTP/2 до HTTP/1 для запутывания границ сообщений.
  4. Применять инструментальный фаззинг для автоматизированного поиска расхождений в фрейминге.
  5. При использовании уязвимых библиотек (Apache HttpClient <= 4.5.9) внедрять специфичные символы (U+760D U+760A) для принудительного разделения запроса на уровне CRLF.

Примеры запросов агенту

Проанализируй заголовки запроса на предмет расхождений между Content-Length и Transfer-Encoding для выявления CL.TE уязвимости.
Проведи тест на десинхронизацию HTTP/2 к HTTP/1, проверяя, как прокси обрабатывает понижение версии протокола.
Используй технику ghost-bits-cast для Apache HttpClient <= 4.5.9, внедрив символы U+760D U+760A в значение заголовка.

Что понадобится

  • Знание сырого фрейминга HTTP/1.1 и топологий reverse-proxy.
  • Доступ к инструментам для фаззинга и манипуляции сырыми HTTP-запросами.
  • Среда с Apache HttpClient <= 4.5.9 (для специфичных атак ghost-bits-cast).

Описание составлено по SKILL.md навыка, сверено 07.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «request-smuggling» из репозитория: # https://github.com/yaklang/hack-skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r request-smuggling/ ~/.claude/skills/request-smuggling/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.