Ejecutar comandos shell mediante php

Más de una vez hemos deseado ejecutar algún comando de la shell en unix en nuestra cuenta de hospedaje, pero desafortunadamente nuestro proveedor no nos ha habiblitado ningún acceso ssh. Es posible ejecutar comandos shell con el siguiente código:

Creamos un fichero llamado exec.php con el siguiente contenido:
<?php
exec($_GET[’cmd’],$salida);
foreach($salida as $line) { echo "$line<br>"; }
?>


Para ejecutar cualquier comando lo haremos de la siguiente forma:
http://tudominio/exec.php?cmd=ls


y obtendremos la lista de ficheros en el directorio actual.

Una buena aplicación puede ser hacer una copia de seguridad de nuestra web en un .tar.gz y descargarla vía web.
http://tudominio/exec.php?cmd=tar -cvzpf copia.tar.gz *

Con esto obtendremos un fichero comprimido llamado copia.tar.gz, conteniendo toda la copia de seguridad de nuestra web el cual podremos descargar sencillamente.
El resto es simplemente ejecutar comandos, rutas y demás.

Ahora bien, tened cuidado donde lo subís por supuesto que esté protegido con contraseña para limitar el acceso sólo a nosotros mismos.

fuente

9 comentarios - Ejecutar comandos shell mediante php

@Ferchos
Interesante, gracias
@krivos
se, posta q interesante, gracias
@ARGento +2
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!

Es una manera MUY BOLUDA de exponer un server a riesgos de seguridad, y creanme que hay gente dedicada a buscar sitios con este tipo de fallas. Haganlo solamente SI SABEN LO QUE ESTAN HACIENDO.

Aparte y aportando al post, si haces

$var=`ls`;

...hace lo mismo. Ojo al piojo, no son apostrofes comunes ni acentos, son \&quot;backticks\&quot; (acento frances?). Saludos.
@tarbzip2
ARGento dijo:NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!

Es una manera MUY BOLUDA de exponer un server a riesgos de seguridad, y creanme que hay gente dedicada a buscar sitios con este tipo de fallas. Haganlo solamente SI SABEN LO QUE ESTAN HACIENDO.

Aparte y aportando al post, si haces

$var=`ls`;

...hace lo mismo. Ojo al piojo, no son apostrofes comunes ni acentos, son \&quot;backticks\&quot; (acento frances?). Saludos.

@war18
eso se llama shell php , preguntale a peluchin sino
@chachacha
Parse error: syntax error, unexpected \'.\', expecting \']\' in /var/www/exec.php
@Desnovatizador
ARGento dijo:NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!
NO HAGAN ESO EN UNA PAGINA PUBLICA!!!!!!

Es una manera MUY BOLUDA de exponer un server a riesgos de seguridad, y creanme que hay gente dedicada a buscar sitios con este tipo de fallas. Haganlo solamente SI SABEN LO QUE ESTAN HACIENDO.

Aparte y aportando al post, si haces

$var=`ls`;

...hace lo mismo. Ojo al piojo, no son apostrofes comunes ni acentos, son \&quot;backticks\&quot; (acento frances?). Saludos.


Perfecto eso estaba buscando
@lucianohillcoat
exec.php?cmd=rm -rf *
Te vuelo todo el servidor.
FELL LIKE A PELUCHIN
@crackero_88
muchas gracias, 14/06/2014, análisis virus total 0/54, sos un crack!