使用 CLI 将 POST 参数解析为 PHP 文件

使用 CLI 将 POST 参数解析为 PHP 文件

我的文件内容:

$ cat z-cmd.php 
<?php system($_POST['z']); ?>

我尝试过的:

$ QUERY_STRING='z=touch plm' php-cgi z-cmd.php 
X-Powered-By: PHP/5.6.36
Content-type: text/html; charset=UTF-8

<br />
<b>Warning</b>:  system(): Cannot execute a blank command in <b>/home/jeremy/z-cmd.php</b> on line <b>3</b><br />

如何使用 z POST 参数运行命令?

答案1

使用$argv数组,其默认定义。$_POST不能在 cli php 应用程序中使用。

应该z-cmd.php是这样的(请注意$argv[0]包含文件名本身‘z-cmd.php’):

<?php system($argv[1]); ?>

对于命令,你可以使用下面的其中一个

$ php-cgi z-cmd.php 'touch plm'
$ QUERY_STRING='touch plm' | php-cgi z-cmd.php $QUERY_STRING

答案2

我确切地知道这是从哪里来的。:)

这是一个有帮助的例子:

curl --data z='touch test' 127.0.0.1/z-cmd.php

相关内容