命令执行漏洞(Command Injection)
Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。
命令介绍:
ping 127.0.0.1 && ipconfig
ping 127.0.0.1&&ipconfig
ping 127.0.0.1 & ipconfig
ping 127.0.0.1&ipconfig
ping 127.0.0.1000 || ipconfig(前面指令错误,执行后面)
ping 127.0.0.1000||ipconfig
ping 127.0.0.1 | ipconfig
ping 127.0.0.1|ipconfig
ping 127.0.0.1 ; ipconfig(Linux)
ping 127.0.0.1 |ipconfig
级别:Low
工具:burpsuite
源码审计:直接拼接输入指令,无任何防护
测试:burp抓包,命令介绍中指令制作字典,进行跑包。查看返回包。
级别:Medium
工具:burpsuite
源码审计:对输入指令进行了黑名单防护,过滤了&&和;
可进行黑名单绕过,可更换指令绕过。
测试:burp抓包,命令介绍中指令制作字典,进行跑包。查看返回包。
级别:High
工具:burpsuite
源码审计:对输入指令进行了黑名单防护,过滤了大多数连接符,可进行黑名单绕过,可通过指令之间的空格加减绕过。
测试:burp抓包,命令介绍中指令制作字典,进行跑包。查看返回包。
级别:Impossible
工具:burpsuite
源码审计:使用了token进了CSRF防护,对接受ip参数进行非法字符过滤,对ip地址进行分隔,并判断每个数字进行是否是数字判断。
测试:无法命令执行
防御方法: