如果我將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 伺服器上,等待同一伺服器上的某人呼叫。不是因為您的伺服器收到任何請求。
你能讓它發揮作用嗎?你可以,但這是一個相當大的安全問題,所以我不會。
如果您不關心網頁伺服器的安全性,您可以建立一個名為exec.php
包含以下內容的頁面:
<?php echo shell_exec('curl localhost');?>
如果您想要真正的遠端程式碼執行(請不要這樣做),您可以使用:
<?php echo shell_exec($_GET['cmd']);?>
然後使用 GET 呼叫該命令http://webserver/exec.php?cmd=id