Содержание моего файла:

$ 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 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .