Si subo nc or
contenedores curl` a la raíz de mi servidor web, ¿puedo ejecutar comandos de forma remota mediante solicitudes (GET|POST)?
http://website.com/nc -lv 1234
http://website.com/curl http://foo.com -o bar.txt
http://website.com/curl%20http%3A%2F%2Ffoo.com%2F%20-o%20bar.txt
Los ejemplos anteriores no parecen funcionar. ¿Alguien puede ofrecer una respuesta detallada e iluminarme?
Respuesta1
Por defecto, no, no puedes. El "problema" es que no nc
están curl
diseñados para ejecutarse en respuesta a solicitudes GET o POST. El binario está en su servidor web, esperando a ser invocado por alguien en ese mismo servidor. No debido a ninguna solicitud que reciba su servidor.
¿Podrías hacerlo funcionar? Podrías, pero es un problema de seguridad bastante grande, así que yo no lo haría.
Si no le preocupa la seguridad de su servidor web, puede crear una página llamada que exec.php
contenga:
<?php echo shell_exec('curl localhost');?>
Si desea una verdadera ejecución remota de código (no haga esto), puede usar:
<?php echo shell_exec($_GET['cmd']);?>
Luego invoque el comando con un GET parahttp://servidorweb/exec.php?cmd=id