COMMIX(1)
π NAME π β commix(1)
bestie, welcome to the commix(1) page from the User Commands section. commix β Automated All-in-One OS Command Injection Exploitation Tool. periodt. π
π SYNOPSIS π
commix [OPTIONS]
π DESCRIPTION π
okay so commix (aka COMmand MIXer) is an open-source penetration testing tool that automates the detection and exploitation of OS command injection vulnerabilities in web applications. it's giving automation queen, no cap. π
It supports multiple injection techniques, HTTP request formats, authentication methods, session management, and payload tampering. Optional integration with the Metasploit Framework is available via the --msf-path option. iykyk π
β οΈ commix is intended for security researchers, penetration testers, and administrators performing authorized security assessments only. bestie, do not be out here testing random websites, that is NOT the vibe. π¨
π OPTIONS π
β¨ General β¨
-h,--helpβ shows help and exits. the classic βhelp me help youβ button. ππ-v VERBOSEβ verbosity level (0-4, Default:0). Level 1 enables basic debug info; level 2 shows all HTTP requests; level 3 adds HTTP response headers; level 4 shows full request and response bodies. the way this escalates... π--installβ installscommixsystem-wide, making it accessible from any location. Requires administrator privileges. so, sudo energy. π--versionβ shows the version number and exits. simple, iconic, done. β--updateβ checks for updates (applies them if there are any) and exits. Requires installation viagit clonefrom the official repository. git bestie behaviour. π§--output-dir=OUTDIRβ sets a custom output directory path. The directory is created if it does not exist. auto-magic folder creation β¨-s SESSION_FILEβ loads session from a stored (.sqlite) file. save your progress, main character. πΎ--flush-sessionβ flushes session files for the current target. Forces a fresh scan from scratch. blank slate era. π§Ό--ignore-sessionβ ignores results stored in the session file without deleting them. Useful for re-validating findings without losing historical data. best of both worlds. π¦-t TRAFFIC_FILEβ logs all HTTP traffic into a textual file. tea, but make it forensic. π΅--time-limit=SECONDSβ runs with a time limit in seconds (e.g.3600). Useful in automated environments such as CI/CD pipelines. automation girlies rise. π€--batchβ never asks for user input, uses the default behaviour. Ideal for automation and headless environments. no thoughts, just defaults. πΆβπ«οΈ--skip-heuristicsβ skips heuristic detection for code injection. skip! π¦--codec=CODECβ forces codec for character encoding (e.g.'ascii'). encoding but make it decisive. π€--charset=CHARSETβ time-related injection charset (e.g.'0123456789abcdef'). Useful for bypassing input filters or WAFs that block certain characters. sneaky link π--check-internetβ checks internet connection before assessing the target. bestie we gotta make sure the wifi is wifi-ing. πΆ--answers=ANSWERSβ sets predefined answers (e.g.'quit=N,follow=N'). Enables automation by pre-defining responses to interactive prompts. scripted responses, slay. π¬
π― Target π―
-u URL,--url=URLβ target URL. This option is mandatory unless the target is defined through alternative methods such as log files or bulk input files. the main character option. π--url-reloadβ reloads target URL after command execution. Useful when the application state changes after each injection attempt. refresh refresh refresh. π-l LOGFILEβ parses target from HTTP proxy log file. forensics era. π-m BULKFILEβ scans multiple targets given in a textual file. not one, not two, but many. π―-r REQUESTFILEβ loads HTTP request from a file. The file must contain the full raw HTTP request as sent to the server. copy-paste realness. π--crawl=CRAWLDEPTHβ crawls the website starting from the target URL (Default:1). Higher depths increase scan duration and server load. go deeper, but respectfully. π·οΈ--crawl-exclude=REGEXPβ regexp to exclude pages from crawling (e.g.'logout'). not that page, bestie. π«-x SITEMAP_URLβ parses target(s) from remotesitemap(.xml)file. xml girlies understand. πΊοΈ--method=METHODβ forces usage of a given HTTP method (e.g.'PUT'). Useful for testing RESTful APIs or non-standard endpoints. RESTful realness. π οΈ
π¨ Request π¨
-d DATA,--data=DATAβ data string to be sent through POST. When provided,commixautomatically switches from GET to POST. glow-up from GET to POST. β¨--host=HOSTβ HTTPHostheader. Tested if--levelis set to3. header homework. π--referer=REFERERβ HTTPRefererheader. Tested if--levelis set to3. where did you come from, where did you go. π΅οΈ--user-agent=AGENTβ HTTPUser-Agentheader. Tested if--levelis set to3. identity crisis, but on purpose. π--random-agentβ uses a randomly selected HTTPUser-Agentheader from a built-in list. Useful for evading basic WAF or CDN filtering. randomize me. π²--param-del=PDELβ sets character for splitting parameter values (default:'&'). the&stays undefeated. πͺ--cookie=COOKIEβ HTTPCookieheader (e.g.'key1=value1; key2=value2'). cookie monster behaviour. πͺ--cookie-del=CDELβ sets character for splitting cookie values (default:';'). semicolon stans rise. βοΈ--http1.0β forces requests to use the HTTP/1.0 protocol. Useful for legacy servers. old-school cool. π΅-H HEADER,--header=HEADERβ extra header (e.g.'X-Forwarded-For: 127.0.0.1'). For multiple headers use--headers. header drip. π--headers=HEADERSβ extra headers separated by'\n'(e.g.'Accept-Language: fr\nETag: 123'). newline girlies know. π--proxy=PROXYβ uses an HTTP proxy to connect to the target URL (e.g.'http://127.0.0.1:8080'). For SOCKS proxies, useproxychains. proxy princess. π--torβ uses the Tor network. Requires the Tor service to be running. anonymity era. π§--tor-port=PORTβ sets Tor proxy port (Default:8118). Use9050for the native Tor SOCKS port when combined withproxychains. port check, bestie. π--auth-url=URLβ login panel URL. Use with--auth-datato enable automated authentication. login automation slay. π--auth-data=DATAβ login parameters and data (e.g.'user=admin&pass=1234'). credentials but make them parameters. π--auth-type=TYPEβ HTTP authentication type (Basic,Digest,Bearer). pick your fighter. π₯--auth-cred=CREDβ HTTP authentication credentials (e.g.'admin:admin'). the classic admin/admin moment. π--abort-code=CODEβ aborts on (problematic) HTTP error code(s) (e.g.'401,403'). stop right there. π--ignore-code=CODEβ ignores (problematic) HTTP error code(s) (e.g.'404,403'). not today, error code. π--force-sslβ forces usage of SSL/HTTPS regardless of the URL scheme. secure the bag. π--ignore-proxyβ ignores system default proxy settings. proxy? never heard of her. π--ignore-redirectsβ ignores redirection attempts (HTTP 3xx). no detours. π§--timeout=SECONDSβ seconds to wait before timeout connection (Default:30). patience is a virtue. β³--retries=RETRIESβ retries when the connection timeouts (Default:3). try, try, try again. π--drop-set-cookieβ ignoresSet-Cookieheader from response. Useful for maintaining a stable session throughout the scan. session stability queen. πͺπ«
π Enumeration π
--allβ retrieve everything. gimme the whole lore. π--current-userβ retrieves current user name. who dis? π€--hostnameβ retrieves current hostname. hello, my name is... π·οΈ--is-rootβ checks if the current user has root privileges (Unix/Linux). root check. π--is-adminβ checks if the current user has admin privileges (Windows). admin check. πͺ--sys-infoβ retrieves system information (OS version, kernel, architecture). tell me everything. π»--usersβ retrieves system users. the whole guest list. π₯--passwordsβ retrieves system users password hashes. hash girlies, this oneβs for you. π--privilegesβ retrieves system users privileges. who can do what. ποΈ--ps-versionβ retrieves PowerShell's version number (Windows targets). PowerShell bestie check. β‘
π File Access π
--file-read=FILEPATHβ reads a file from the target host (e.g.'/etc/passwd'). file reading era. π--file-write=FILEPATHβ writes a local file to the target host. Use with--file-dest. upload but make it specific. π€--file-dest=FILEPATHβ host's absolute filepath to write and/or upload to. destination, not suggestion. π
π§© Modules π§©
--shellshockβ enables the Shellshock (CVE-2014-6271) injection module. Tests CGI scripts that rely on Bash, where injected payloads in HTTP headers (User-Agent,Referer,Cookie) may be executed. vintage vulnerability, still iconic. ππ₯
π Injection π
-p PARAMETERβ testable parameter(s). Multiple parameters can be specified as a comma-separated list. pick your targets. π―--skip=PARAMETERβ skips testing for given parameter(s). not this one, bestie. βοΈ--suffix=SUFFIXβ injection payload suffix string. Useful for closing quotes or syntax elements in the injection context. closing the vibe. π--prefix=PREFIXβ injection payload prefix string. Useful for opening quotes or syntax elements in the injection context. opening the vibe. π--technique=TECHβ specify injection technique(s) to use. Available techniques:Cβ Classic - results-based injection; output is reflected directly in the HTTP response. reflected realness. πͺEβ Dynamic Code Evaluation - targetseval()or similar functions (e.g.assert(),preg_replace()with/ein PHP). eval era. π§Tβ Time-based - blind injection via conditional response delays (e.g.sleep,timeout). Useful when output is suppressed. wait for it... β±οΈFβ File-based - semi-blind injection that writes command output to a file on the server and reads it back. write, read, slay. π
Multiple techniques can be combined (e.g. --technique='ctf'). combo meal π
--skip-technique=TECHβ specifies injection technique(s) to skip (e.g.--skip-technique='tf'). not those techniques. π«--maxlen=MAXLENβ sets the max length of output for time-related injection techniques (Default:10000 chars). character limit, but make it hacker. π’--delay=SECONDSβ seconds to delay between each HTTP request. Helps evade rate-limiting and WAF mechanisms. slow down to speed up. π’--time-sec=SECONDSβ seconds to delay the OS response in time-based techniques (Default:1). one second of suspense. β²οΈ--tmp-path=PATHβ sets the absolute path of web server's temp directory. temp folder, but fancy. π--web-root=PATHβ sets the web server document root directory (e.g.'/var/www'). root directory realness. π--alter-shell=SHELLβ uses an alternativeos-shell(e.g.'Python'). Useful when the default shell is restricted. plan B slay. π--os-cmd=COMMANDβ executes a single operating system command and displays the output. one command, one moment. β‘--os=OSβ forces back-end operating system (e.g.'Windows'or'Unix'). Overrides automatic OS detection. OS but make it manual. π₯οΈ--tamper=SCRIPTβ uses given script(s) for tampering injection data. Useful for bypassing WAFs and input filters. See--list-tampersfor available scripts. tamper tantrum. π--msf-path=PATHβ sets a local path where Metasploit Framework is installed (e.g.'/opt/metasploit-framework'). Enables post-exploitation integration with MSF modules. MSF crossover episode. π
π΅οΈ Detection π΅οΈ
--level=LEVELβ level of tests to perform (1-3, Default:1).1β Tests URL parameters and POST data only. starter pack. πΌ2β Includes level 1 plus injection testing in HTTP cookies. cookies get tested too. πͺ3β Includes level 2 plus injection testing in HTTP headers (User-Agent,Referer,Host, etc.). headers join the party. π
--skip-calcβ skips the mathematic calculation during the detection phase. math? skipped. βπ«--skip-emptyβ skips testing the parameter(s) with empty value(s). empty? not today. π³οΈ--failed-tries=Nβ sets a number of failed injection tries before aborting, in file-based technique. know when to fold 'em. π--smartβ does the full thorough test only when there's a positive heuristic to go on. Basically: it waits for a vibe check before going all in. π Fewer false positives, shorter scan time. Win-win.
β¨ Miscellaneous β¨
--ignore-dependenciesβ ignores every single required third-party library dependency. π«Ά Careful though, bestie β the manpage literally says use with caution, because it may reduce functionality. Not everything survives when you cut the side quests.--list-tampersβ shows you the list of tamper scripts that are available. Window shopping, but for payload mutators. ποΈ--alert=COMMANDβ runs host OS command(s) the moment an injection point is found. Perfect for triggering alerts or hooking into external monitoring tools. π£ Like a little "we found it!!" bat signal.--no-loggingβ turns off logging to a file. Results show up in the console only. π--purgeβ safely removes all content from the commix data directory β that'scache,sessions, andlogs. A full reset, no crumbs left. π§Ή--skip-wafβ skips the heuristic detection of WAF/IPS/IDS protection. πͺ Just walks right past the bouncer.--mobileβ imitates a smartphone via the HTTPUser-Agentheader. Handy for testing mobile-specific application interfaces. π±--offlineβ offline mode, baby: no update checks, no internet requirements. βοΈ--wizardβ a simple wizard interface, made for beginner users. π§ββοΈ Everyone starts somewhere, and that's iconic.--disable-coloringβ kills the console output coloring. Great when you're logging to files or stuck in a terminal with no color support. π¨π«
π EXAMPLES π
Ok bestie, this is the part where it all clicks. Here's how people actually run it:
Test a URL for command injection vulnerabilities:
commix -u http://example.com/search.php?query=test
Test a POST request:
commix -u http://example.com/login.php -d user=admin&pass=test
Test with a specific parameter and higher verbosity:
commix -u http://example.com/page.php?id=1&name=test -p name -v 3
Test using a saved HTTP request file:
commix -r /tmp/request.txt
Test through a proxy (e.g. Burp Suite):
commix -u http://example.com/?id=1
--proxy="http://127.0.0.1:8080"
Test through the Tor network:
commix -u http://example.com/?id=1 --tor --tor-port=9050
Use only Classic and Time-based techniques:
commix -u http://example.com/?id=1 --technique=ct
Test at level 3 (includes HTTP headers):
commix -u http://example.com/?id=1 --level=3 --random-agent
Test for Shellshock in a CGI endpoint:
commix -u http://example.com/cgi-bin/status/ --shellshock
Retrieve current user and system information upon successful injection:
commix -u http://example.com/?id=1 --current-user --sys-info
Read a remote file from the target host:
commix -u http://example.com/?id=1 --file-read="/etc/passwd"
Write a local file to the target host:
commix -u http://example.com/?id=1 --file-write="shell.php"
--file-dest="/var/www/html/shell.php"
Run in batch mode with time limit:
commix -u http://example.com/?id=1 --batch --time-limit=120
Use a tamper script to bypass WAF filtering:
commix -u http://example.com/?id=1 --tamper=space2plus
Scan multiple targets from a file:
commix -m /tmp/targets.txt --batch
Pipeline with waybackurls for automated target discovery:
echo example.com | waybackurls | grep vuln.php | commix
--data="addr=1" --os-cmd="whoami" --batch
π¨ LEGAL DISCLAIMER π¨
Ok so this part is not a joke, bestie, and I need you to actually read it. π
Using commix to attack targets without prior mutual consent is illegal. Periodt. It is the end user's responsibility to obey all applicable local, state, and federal laws. The developers assume no liability and are not responsible for any misuse or damage caused by this program.
So: consent first, always. Don't be that person. π
π SEE ALSO π
π AUTHOR π
Anastasios Stasinopoulos <ancst@commixproject.com>
This manual page was written by Josenilson Ferreira da Silva <nilsonfsilva@hotmail.com> for the Debian project (but may be used by others). π«Ά
And that's the whole page, bestie!! π This is commix version 4.1, dated 2026-06, filed under COMMIX(1). Go forth, be curious, stay legal, and slay responsibly. πβ¨π¦
π¦ where this page comes from
- ubuntu stonking: commix 4.1+dfsg-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms