Перейти к содержимому
HackIndex logo

HackIndex

Инструменты

Генератор обходов инъекции команд

Enter a command and a regex filter. We'll generate payloads that bypass it.

\rA-Z]*$\"">

Совет: вы можете вводить regex с разделителями или без — работают как /pattern/flags, так и простой шаблон.

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

Этот инструмент автоматизирует поиск пейлоадов инъекции команд, проходящих через заданный 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
Plain pattern ^[0-9a-z]+$
Python raw string r"^[^;/\&.<>\rA-Z]*$"
Python re.compile re.compile(r"[;&|]", re.IGNORECASE)
JavaScript new RegExp new RegExp("[;&|]", "gi")
Go raw string `^[a-z0-9]+$`
Perl m// m/[;&|]/gi
Quoted string "^[a-z0-9]+$"

FAQ

Does this actually execute commands?

No. Everything runs server-side in PHP. Payloads are generated as strings and tested against your regex with preg_match(). No command is ever executed on the server.

What does "payload must match / must NOT match" mean?

A blacklist blocks input when the regex matches: payload must NOT match. A whitelist only allows input when the regex matches: payload must match. The tool auto-detects which is more likely and warns you if your selection looks wrong.

Why are some payloads marked with a warning?

Wildcard and glob-based payloads (e.g. /bin/c?t) depend on the filesystem layout of the target. They bypass the regex filter, but will only work if the expected binary is present at that path.

Why does my ANSI-C quoting payload not run directly?

An ANSI-C string like $'\x77\x68\x6f\x61\x6d\x69' evaluates to the literal string whoami in bash but does not execute it on its own. Prefix it with eval or bash -c, which are lowercase letters and unlikely to be filtered.

Can I use this for CTF challenges?

Yes. This tool is designed for CTF and authorised penetration testing scenarios where you need to bypass an input filter to achieve command execution. Only use it on systems you own or have explicit permission to test.