Updated Jul 14, 2026

Vulnerabilities

Confirm command injection and run host commands

Automates OS command injection detection and exploitation.

Agent

overview

What commix does

Commix automates OS command injection testing against a URL. Name injectable fields with -p, send POST bodies with --data, and confirm across classic, eval, time, and file techniques.

Raise --level (1-3) for more injection points. Limit methods with --technique, evade filters with --tamper, and hop through --proxy when needed. --crawl can discover parameters when you have not named one yet.

Trickest hosts Commix as a managed Vulnerabilities node: target URL or file in, results folder out. Feed endpoints a crawler already surfaced; confirmed injections are high-priority findings for the rest of the pipeline.

source github.com/commixproject/commix

use cases

Where commix fits

Detect command injection automatically

Test a URL and its parameters across classic, eval-based, time-based, and file-based techniques so injectable points get confirmed without hand-crafting payloads.

Exploit a confirmed injection

Once a point is found, run host commands with --os-cmd or an interactive os-shell, read and write files, and retrieve system info to demonstrate real impact.

Test through proxies and filters

Route requests through --proxy or --tor and apply --tamper scripts so testing reaches targets behind WAFs and network controls.

Crawl for testable parameters

Enable --crawl or sitemap parsing so Commix discovers parameters to test instead of relying on a single value you pass with -p.

reference

commix inputs and flags

86 inputs
NameTypeFlagDescription
urlSTRING·Target URL to test.
parameterSTRING-pTestable parameter(s) to inject into.
dataSTRING--dataData string sent through POST.
levelSTRING--levelLevel of tests to perform (1-3, default 1).
techniqueSTRING--techniqueInjection technique(s) to use (classic, eval, time, file).
os-cmdSTRING--os-cmdExecute a single operating system command on the host.
crawlBOOLEAN--crawlCrawl the website starting from the target URL.
proxySTRING--proxyRoute requests through a proxy to reach the target.

Showing key inputs. commix exposes 86 inputs in total.

Full flag reference (86 inputs)
NameTypeFlagDescription
osSTRING--osForce back-end operating system (e.g. 'Windows' or 'Unix').
allBOOLEAN--allRetrieve everything.
torBOOLEAN--torUse the Tor network.
urlSTRING·Target URL.
dataSTRING--dataData string to be sent through POST.
hostSTRING--hostHTTP Host header.
skipSTRING--skipSkip testing for given parameter(s).
urlsFILE·Scan multiple targets given in a textual file.
alertSTRING--alertRun host OS command(s) when injection point is found.
codecSTRING--codecForce codec for character encoding (e.g. 'ascii').
crawlBOOLEAN--crawlCrawl the website starting from the target URL
delaySTRING--delaySeconds to delay between each HTTP request.
levelSTRING--levelLevel of tests to perform (1-3, Default: 1).
proxySTRING--proxyUse a proxy to connect to the target URL.
purgeBOOLEAN--purgeSafely remove all content from commix data directory.
smartBOOLEAN--smartPerform thorough tests only if positive heuristic(s).
usersBOOLEAN--usersRetrieve system users.
cookieSTRING--cookieHTTP Cookie header.
headerSTRING--headerExtra header (e.g. 'X-Forwarded-For: 127.0.0.1').
maxlenSTRING--maxlenSet the max length of output for time-related
methodSTRING--methodForce usage of given HTTP method (e.g. PUT)
mobileBOOLEAN--mobileImitate smartphone through HTTP User-Agent header.
os-cmdSTRING--os-cmdExecute a single operating system command.
prefixSTRING--prefixInjection payload prefix string.
suffixSTRING--suffixInjection payload suffix string.
tamperSTRING--tamperUse given script(s) for tampering injection data.
answersSTRING--answersSet predefined answers (e.g. "quit=N,follow=N")
charsetSTRING--charsetTime-related injection charset (e.g. "0123456789abcdef")
headersSTRING--headersExtra headers (e.g. 'Accept-Language: fr\nETag: 123').
is-rootBOOLEAN--is-rootCheck if the current user have root privileges.
offlineBOOLEAN--offlineWork in offline mode.
refererSTRING--refererHTTP Referer header.
requestFILE-rLoad HTTP request from a file.
retriesSTRING--retriesRetries when the connection timeouts (Default: 3).
sessionFILE-sLoad session from a stored (.sqlite) file.
sitemapBOOLEAN-xParse target(s) from remote sitemap(.xml) file.
timeoutSTRING--timeoutSeconds to wait before timeout connection (Default:
auth-urlSTRING--auth-urlLogin panel URL.
hostnameBOOLEAN--hostnameRetrieve current hostname.
is-adminBOOLEAN--is-adminCheck if the current user have admin privileges.
log-fileFILE-lParse target from HTTP proxy log file.
skip-wafBOOLEAN--skip-wafSkip heuristic detection of WAF/IPS/IDS protection.
sys-infoBOOLEAN--sys-infoRetrieve system information.
time-secSTRING--time-secSeconds to delay the OS response (Default: 1).
tmp-pathSTRING--tmp-pathSet the absolute path of web server's temp directory.
tor-portSTRING--tor-portSet Tor proxy port (Default: 8118).
web-rootSTRING--web-rootSet the web server document root directory (e.g. '/var/www').
auth-credSTRING--auth-credHTTP authentication credentials (e.g. 'admin:admin').
auth-dataSTRING--auth-dataLogin parameters and data.
auth-typeSTRING--auth-typeHTTP authentication type (Basic, Digest, Bearer).
file-destSTRING--file-destHost's absolute filepath to write and/or upload to.
file-readSTRING--file-readRead a file from the target host.
force-sslBOOLEAN--force-sslForce usage of SSL/HTTPS.
param-delSTRING--param-delSet character for splitting parameter values.
parameterSTRING-pTestable parameter(s).
passwordsBOOLEAN--passwordsRetrieve system users password hashes.
skip-calcBOOLEAN--skip-calcSkip the mathematic calculation during the detection
techniqueSTRING--techniqueSpecify injection technique(s) to use.
tor-checkBOOLEAN--tor-checkCheck to see if Tor is used properly.
verbositySTRING-vVerbosity level (0-4, Default: 0).
cookie-delSTRING--cookie-delSet character for splitting cookie values.
file-writeSTRING--file-writeWrite to a file on the target host.
no-loggingBOOLEAN--no-loggingDisable logging to a file.
privilegesBOOLEAN--privilegesRetrieve system users privileges.
ps-versionBOOLEAN--ps-versionRetrieve PowerShell's version number.
shellshockBOOLEAN--shellshockThe 'shellshock' injection module.
skip-emptyBOOLEAN--skip-emptySkip testing the parameter(s) with empty value(s).
url-reloadBOOLEAN--url-reloadReload target URL after command execution.
user-agentSTRING--user-agentHTTP User-Agent header.
alter-shellSTRING--alter-shellUse an alternative os-shell (e.g. 'Python').
file-uploadSTRING--file-uploadUpload a file on the target host.
ignore-codeSTRING--ignore-codeIgnore (problematic) HTTP error code (e.g. 401).
current-userBOOLEAN--current-userRetrieve current user name.
failed-triesSTRING--failed-triesSet a number of failed injection tries, in file-based
ignore-proxyBOOLEAN--ignore-proxyIgnore system default proxy settings.
list-tampersBOOLEAN--list-tampersDisplay list of available tamper scripts.
random-agentBOOLEAN--random-agentUse a randomly selected HTTP User-Agent header.
crawl-excludeSTRING--crawl-excludeRegexp to exclude pages from crawling (e.g. "logout").
flush-sessionBOOLEAN--flush-sessionFlush session files for current target.
check-internetBOOLEAN--check-internetCheck internet connection before assessing the target.
ignore-sessionBOOLEAN--ignore-sessionIgnore results stored in session file.
skip-techniqueSTRING--skip-techniqueSpecify injection technique(s) to skip.
drop-set-cookieBOOLEAN--drop-set-cookieIgnore Set-Cookie header from response.
skip-heuristicsBOOLEAN--skip-heuristicsSkip heuristic detection for code injection.
ignore-redirectsBOOLEAN--ignore-redirectsIgnore redirection attempts.
ignore-dependenciesBOOLEAN--ignore-dependenciesIgnore all required third-party library dependencies.

example

Run commix

commix · command
# detect and exploit command injection in the 'addr' POST parametercommix -u "https://example.com/ping.php" --data="addr=127.0.0.1" -p addr --level=2 --os-cmd="id"
sample output
[*] Checking connection to the target URL... [ ok ][*] Setting the POST parameter 'addr' for tests.[*] Testing the (results-based) classic command injection technique... [ succeed ][+] The POST parameter 'addr' seems injectable via (results-based) classic command injection technique.    [~] Payload: ;echo VCEKZP$((80+27))$(echo VCEKZP)VCEKZP[*] Type "?" for available options.commix(os_shell) > iduid=33(www-data) gid=33(www-data) groups=33(www-data)commix(os_shell) > hostnameweb01.example.com

guidance

Choosing commix

Reach for Commix when you suspect OS command injection and want detection plus exploitation in one tool. For SQL injection use sqlmap; for broad CVE coverage use nuclei. Feed it endpoints that take user input.

sqlmap

Automates SQL injection. Commix is the command-injection counterpart with the same detect-and-exploit model.

nuclei

Template scanner for broad coverage. Commix goes deeper on one injection class.

tplmap

Targets server-side template injection. Different bug class, similar exploit flow.

faq

commix questions

Classic, eval-based, time-based, and file-based OS command injection. Narrow the set with --technique, or skip methods with --skip-technique.

Run commix yourself

A target feeds katana to surface parameters, then Commix tests them for command injection and writes confirmed injections as output.

Facts on this page come from the live Trickest tool library.