TGViewer
Standoff Bug Bounty Tips Standoff Bug Bounty Tips @standoff_bb_tips · 1.66K subscribers
Post #197 1.77K
Command injection в Claude Code: извлекаем правильные уроки 🤖

Исследователь из Flatt Security нашел 8 способов обхода белых списков команд в Claude Code. Его подход можно и нужно использовать при поиске багов в веб-приложениях ⤵️

Под капотом Claude Code использовал регулярные выражения, которые разрешали «безопасные» команды вроде man, sort, sed, xargs. Каждый обход эксплуатировал одно из следующих свойств:

1️⃣ Опасные флаги в «безопасных» командах

🧡 man --html='touch /tmp/pwned' man — флаг --html задаёт рендерер, который выполняет произвольные команды

🧡 sort --compress-program=/bin/sh — флаг утилиты сжатия принимает исполняемые файлы

🧡 echo test | sed 's/test/touch \/tmp\/pwned/e' — модификатор e выполняет shell-команды.

2️⃣ Сокращение аргументов в Git

🧡 Git автоматически дополняет сокращённые флаги: --upload-pa превращается в --upload-pack

🧡 Regex-фильтры проверяют точные имена флагов

🧡 git ls-remote --upload-pa='...' обходит блокировку --upload-pack

3️⃣ Различная интерпретация аргументов команды

🧡 xargs -t touch echo — regex считает, что -t обрабатывает следующий аргумент, но -t является логическим значением

🧡 В итоге touch становится исполняемой командой, а не аргументом для -t

4️⃣ Расширение prompt в Bash

echo ${one="$"}${two="$one(touch /tmp/pwned)"}${two@P}


Модификатор @P интерпретирует переменную как строку промпта, который поддерживает подстановку команд.

В сочетании с присваиванием $ это позволяет вырваться из ограниченных контекстов, например при установке переменной one в $.

💬 Какой вывод можно сделать?

Любой контроль, основанный на проверке строк или «разрешённых значений», часто ломается на реальном поведении системы.

Если приложение фильтрует параметры, команды, пути, роли или действия через regex, списки допустимых значений или «безопасные» флаги — ищи расхождение между тем, что проверяет код, и тем, как это интерпретирует движок дальше.

И да: всегда читай документацию целиком. Большинство обходов лежат в man-страницах и спецификациях — просто до них никто не дошёл.
  • 🤔 7
  • ❤ 6
More from @standoff_bb_tips
  1. Oct 11, 2026Что скрывается в имени HTML-тега? Может быть, JavaScript? Gareth Heyes из PortSwigger пока…
  2. Oct 4, 2026Хочешь прокачать своего багбаунти-агента ❓ Обрати внимание на Model-Context-Protocol (MCP)…
  3. Oct 3, 2026Эксплуатация багов, связанных с ошибками в бизнес-логике 🤔 Логические баги — это когда ко…
  4. Sep 7, 2026Post #255
  5. Sep 5, 2026Мы накидали 6 разных вариантов атак для простого GET-запроса на редактирование профиля ⤵️…
  6. Aug 15, 2026Stored XSS через картинку: проверь Content-Type override 😵‍💫 Иногда загрузка изображений…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →