Wenn ich nc or
Curl-Bins in das Stammverzeichnis meines Webservers hochlade, kann ich dann Befehle remote mithilfe von (GET|POST)-Anfragen ausführen?
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
Die obigen Beispiele scheinen nicht zu funktionieren. Kann mir jemand eine ausführliche Antwort geben und mich aufklären?
Antwort1
Standardmäßig ist das nicht möglich. Das „Problem“ besteht darin, dass nc
und curl
nicht als Antwort auf GET- oder POST-Anfragen ausgeführt werden. Die Binärdatei befindet sich auf Ihrem Webserver und wartet darauf, von jemandem auf demselben Server aufgerufen zu werden. Nicht aufgrund einer Anfrage, die Ihr Server erhält.
Könnten Sie es zum Laufen bringen? Das könnten Sie, aber es ist ein ziemlich großes Sicherheitsproblem, also würde ich es nicht tun.
Wenn Sie sich keine Sorgen um die Sicherheit Ihres Webservers machen, können Sie eine Seite mit dem Namen erstellen, die Folgendes exec.php
enthält:
<?php echo shell_exec('curl localhost');?>
Wenn Sie eine echte Remotecodeausführung wünschen (was Sie bitte nicht tun sollten), können Sie Folgendes verwenden:
<?php echo shell_exec($_GET['cmd']);?>
Rufen Sie dann den Befehl mit einem GET auf, umhttp://webserver/exec.php?cmd=id