[Инструменты](https://hackindex.io/ru/tools)
## Генератор обходов инъекции команд

Введите команду и regex-фильтр. Мы сгенерируем полезные нагрузки, которые его обходят.

## Как это работает

Этот инструмент автоматизирует поиск пейлоадов инъекции команд, проходящих через заданный regex-фильтр. Он генерирует десятки обфусцированных вариантов вашей команды и тестирует каждый из них против regex — на стороне сервера в PHP, ничего не выполняется.

1. 1. Введите команду: необработанная команда для инъекции, например `whoami` или `cat /etc/passwd`.
2. 2. Вставьте regex-фильтр: любой формат: PHP `/pattern/flags`, Python `r"pattern"` или `re.compile(...)`, JavaScript `new RegExp(...)`, Обратная кавычка Go или простой шаблон.
3. 3. Выберите тип фильтра: Фильтры blacklist блокируют совпадающий ввод (пейлоад НЕ должен совпадать); фильтры whitelist допускают только совпадающий ввод (пейлоад должен совпадать).
4. 4. Получите обходы: каждый пейлоад, прошедший условие фильтра, возвращается, сгруппированный по технике, с указанием применимой ОС.

## Категории техник обхода

Генератор охватывает следующие семейства техник обхода для Linux/Bash и Windows CMD/PowerShell.

Linux Encoding (base64 / hex / xxd / octal)

Encodes the entire command using base64 (subshell and pipe-to-sh), raw hex decoded by xxd -r -p, printf \x escapes (lowercase), and ANSI-C $'\x..' quoting. Lowercase-only variants bypass [A-Z] filters.

Linux Quote splitting

Inserts empty single quotes, double quotes, or backslash escapes inside the keyword, e.g. c''at or c\at, breaking pattern matching without changing shell semantics.

Linux Space bypass

Replaces literal spaces with $IFS, ${IFS}, a tab character ($'\t'), brace expansion ({cmd,arg}), or input redirection (cat</etc/passwd).

Linux Slash bypass

Replaces forward slashes using ${HOME:0:1}, ANSI-C $'\x2f', $'\57', or $(printf '\57').

Linux Variable concat

Splits the command across two shell variables (a=wh; b=oami; $a$b) to avoid matching the full keyword in the regex.

Linux Alternative commands

Substitutes blocked commands: cat → less, tac, nl, head, xxd; whoami → id; ls → echo *.

Linux Wildcards / globbing (hint)

Generates c?t and c* variants. These bypass the regex but require the correct binary on the filesystem. Verify manually.

Windows CMD caret obfuscation

Inserts the ^ escape character between chars (w^h^o^a^m^i). CMD ignores ^ and executes the command normally.

Windows CMD quote splitting

Inserts empty double quotes (wh""oami). Functionally identical to the unquoted form in CMD.

Windows CMD variable tricks

Splits across environment variables (set a=wh& set b=oami& call %a%%b%). Also supports delayed expansion via cmd /V:ON and !var!.

Windows PowerShell backtick

The backtick (`) is a PowerShell escape character silently ignored in identifiers. wh`oami executes as whoami.

Windows PowerShell encoding

Encodes as UTF-16LE base64 for powershell -enc, or rebuilds from a char array ([char[]](119,104,...) -join '') or string concat ('wh'+'oami').

Windows PowerShell invoke variants

Uses iex, the & operator, ScriptBlock::Create, or mixed-case IeX without spelling Invoke-Expression.

## Blacklist и whitelist фильтры

Blacklist — пейлоад НЕ должен совпадать

Приложение блокирует ввод при совпадении с regex. Regex описывает опасный шаблон — например `[;&|`$]` или `cat|ls|whoami`. Пейлоад не должен срабатывать на regex, чтобы пройти.

Распространено в: PHP preg_match() с die/block при совпадении, защитах Python re.search().

Whitelist — пейлоад должен совпадать

Приложение обрабатывает ввод только при совпадении с regex. Regex описывает разрешённые символы — например `^[^;\/&A-Z]*$`. Пейлоад должен удовлетворять regex, при этом выполняя команду.

Распространено в: валидаторах ввода, исходниках CTF-заданий, allowlist-ах WAF.

Совет: если regex закреплён с помощью `^` и `$`, это почти всегда whitelist. Инструмент предупредит вас, если выбор режима выглядит неправильным.

## Поддерживаемые форматы ввода regex

Вставьте regex точно в том виде, в каком он появляется в исходном коде — инструмент автоматически определяет формат, извлекает шаблон и флаги, и компилирует в PHP-совместимое выражение.

| Язык / формат | Пример |
| --- | --- |
| PHP / JS / Ruby / Perl | /[;&\|`$\s]/i |
| Простой шаблон | ^[0-9a-z]+$ |
| Python raw-строка | r"^[^;/\&.<>\rA-Z]*$" |
| Python re.compile | re.compile(r"[;&\|]", re.IGNORECASE) |
| JavaScript new RegExp | new RegExp("[;&\|]", "gi") |
| Go raw-строка | `^[a-z0-9]+$` |
| Perl m// | m/[;&\|]/gi |
| Строка в кавычках | "^[a-z0-9]+$" |

## FAQ

Действительно ли это выполняет команды?

Нет. Всё выполняется на стороне сервера в PHP. Полезные нагрузки формируются как строки и проверяются по вашему регулярному выражению через preg_match(). На сервере не выполняется ни одной команды.

Что означает «полезная нагрузка должна / НЕ должна совпадать»?

Чёрный список блокирует ввод при совпадении регулярного выражения: полезная нагрузка НЕ должна совпадать. Белый список пропускает ввод только при совпадении: полезная нагрузка должна совпадать. Инструмент автоматически определяет более вероятный вариант и предупреждает, если ваш выбор выглядит неверным.

Почему некоторые полезные нагрузки помечены предупреждением?

Полезные нагрузки на основе подстановочных знаков и glob (например, /bin/c?t) зависят от структуры файловой системы цели. Они обходят фильтр регулярного выражения, но сработают, только если ожидаемый бинарник есть по этому пути.

Почему моя полезная нагрузка с ANSI-C-кавычками не выполняется напрямую?

Строка ANSI-C вида $'\x77\x68\x6f\x61\x6d\x69' в bash преобразуется в буквальную строку whoami, но сама по себе не выполняется. Добавьте перед ней eval или bash -c — это строчные буквы, которые вряд ли попадут под фильтр.

Можно ли использовать это для CTF-заданий?

Да. Этот инструмент предназначен для CTF и авторизованного пентеста, когда нужно обойти входной фильтр для выполнения команд. Используйте его только на системах, которыми владеете или на тестирование которых есть явное разрешение.
