Parse el parámetro POST a un archivo PHP usando CLI

0

El contenido de mi archivo:

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

Lo que probé:

$ 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 />

¿Cómo puedo ejecutar comandos con el parámetro POST de z?

Nitescu Lucian
fuente

Respuestas:

1

Usar $argvmatriz, se define por defecto. $_POSTno se puede usar en la aplicación cli php.

Para el z-cmd.phpdebería ser como (Tenga en cuenta que $argv[0]contiene el nombre del archivo en sí 'z-cmd.php'):

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

y para el comando puedes usar uno de los siguientes

$ php-cgi z-cmd.php 'touch plm'
$ QUERY_STRING='touch plm' | php-cgi z-cmd.php $QUERY_STRING
Osama Saadallah Al-Ta'ai
fuente