Binärdatei vom Remote-Server verwenden?

Binärdatei vom Remote-Server verwenden?

Wenn ich nc orCurl-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 ncund curlnicht 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.phpenthä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

verwandte Informationen