Usando binário do servidor remoto?

Usando binário do servidor remoto?

Se eu fizer upload nc orde curl` bins para a raiz do meu servidor web, posso executar comandos remotamente usando solicitações (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

Os exemplos acima não parecem funcionar. Alguém pode oferecer uma resposta detalhada e me esclarecer?

Responder1

Por padrão, não, você não pode. O "problema" é que nceles curlnão são executados em resposta a solicitações GET ou POST. O binário está no seu servidor web, esperando para ser invocado por alguém no mesmo servidor. Não por causa de qualquer solicitação que seu servidor receba.

Você poderia fazer funcionar? Você poderia, mas é um grande problema de segurança, então eu não faria isso.

Se você não está preocupado com a segurança do seu servidor web, você pode criar uma página chamada exec.phpcontendo:

<?php echo shell_exec('curl localhost');?>

Se você deseja uma verdadeira execução remota de código (por favor, não faça isso), você pode usar:

<?php echo shell_exec($_GET['cmd']);?>

Em seguida, invoque o comando com um GET parahttp://webserver/exec.php?cmd=id

informação relacionada