一、编写存在命令注入的代码
1.windows环境
<?php
//代码效果参考:http://www.zidongmutanji.com/zsjx/207475.html
$target=$_REQUEST【'ip'】;$cmd = shell_exec('ping '.$target);
echo "
{$cmd}";
?>
测试:|net user
命令执行相关的函数;
system()
system函数可执行并直接显示结果
passthru()
执行有回显,将执行结果输出到页面上
exec()
执行无回显,默认返回最后一行结果
shell_exec()
默认无回显,通过 echo 可将执行结果输出到页面
popen(//代码效果参考:http://www.zidongmutanji.com/bxxx/332044.html
)函数需要两个参数,一个是执行的命令command,另外一个是指针文件的连接模式mode,有r和w代表读和写。
函数不会直接返回执行结果,而是返回一个文件指针,但是命令已经执行。
反引号里面的代码也会被当作OS命令来执行
命令执行漏洞有时候要搭配管道符来进行实现,下面是Windows下的管道符
| //代码效果参考:http://www.zidongmutanji.com/zsjx/506329.html
直接执行|后面的命令|| 如果前面的语句执行出错,则执行后面的语句,前面的语句只能为假
如果前面的语句为假,则直接执行后面的语句,前面的语句可真可假
如果前面的语句为假,则直接出错,也不执行后面的语句,前面的语句只能为真
2.Linux环境
<?php
if (isset($_GET【'cmd'】))
{