nc or
curl` bin を Web サーバーのルートにアップロードした場合、(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
上記の例はうまくいかないようです。誰か詳しい回答をくれて、教えてくれませんか?
答え1
デフォルトでは、できません。問題は、nc
とcurl
が GET または POST リクエストに応答して実行されるように作成されていないことです。バイナリは Web サーバー上に存在し、同じサーバー上の誰かによって呼び出されるのを待っています。サーバーが受信したリクエストが原因ではありません。
それを機能させることができますか? 可能ですが、セキュリティ上の大きな問題があるため、私はそうしません。
Web サーバーのセキュリティを気にしない場合は、次の内容をexec.php
含むページを作成できます。
<?php echo shell_exec('curl localhost');?>
真のリモート コード実行が必要な場合 (これは行わないでください)、次を使用できます。
<?php echo shell_exec($_GET['cmd']);?>
次にGETでコマンドを呼び出しますhttp://webserver/exec.php?cmd=id