Если я загружу nc or
curl-бины в корень моего веб-сервера, смогу ли я запускать команды удаленно с помощью (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. Двоичный файл находится на вашем веб-сервере, ожидая, когда его вызовет кто-то на том же сервере. Не из-за какого-либо запроса, который получает ваш сервер.
Сможете ли вы это сделать? Можно, но это довольно большая проблема безопасности, поэтому я бы этого не делал.
Если вас не беспокоит безопасность вашего веб-сервера, вы можете создать страницу с именем, exec.php
содержащую:
<?php echo shell_exec('curl localhost');?>
Если вам нужно настоящее удаленное выполнение кода (пожалуйста, не делайте этого), вы можете использовать:
<?php echo shell_exec($_GET['cmd']);?>
Затем вызовите команду с помощью GET дляhttp://webserver/exec.php?cmd=id