概述
命令执行漏洞是指可以随意执行系统命令,属于高危漏洞之一,也属于代码执行范围内
导致原因
代码过滤不严格
系统漏洞
调用第三方组件
如:php(system(),shell_exec(),exec(),eval())、 java(struts2)、thinkphp(老牌的php框架)等
&、&&、|、||在windows和linux的命令执行中,都有同样的效果
command1 && command2 命令顺序执行,当command1命令正确时,才会执行后边的命令
command1 & command2 命令顺序执行,不论command1是否正确,都会执行后边的命令
command1 | command2 只执行command2的命令,command1是否正确没有任何影响
command1 || command2 只执行commad1的命令,command1错误,就执行command2
步骤
先用&&、&、|、||判断是否有命令注入
并查是否有过滤
是否能绕过
漏洞复现
实验环境,DVWA的low级别,Command Injection
从网页页面我们知道这是提供了ping服务的页面
红色字符是不是很熟悉?没错,这跟我们在windows系统下的ping命令是一样的,所以我们猜测应该是网页调用了系统函数。
然后我们使用&符号,进行命令注入
可以看到命令注入成功,并且回显了执行结果