nc or
내 웹 서버의 루트에 컬 저장소를 업로드하는 경우 (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
기본적으로는 할 수 없습니다. "문제"는 GET 또는 POST 요청에 대한 응답으로 실행되지 않는다는 nc
것 입니다. curl
바이너리는 웹 서버에 있으며 동일한 서버의 누군가가 호출하기를 기다리고 있습니다. 서버가 수신하는 요청 때문이 아닙니다.
작동하게 할 수 있나요? 그럴 수도 있지만 보안 문제가 꽤 크기 때문에 그렇게 하지 않겠습니다.
웹 서버의 보안이 걱정되지 않는다면 다음을 exec.php
포함하는 페이지를 만들 수 있습니다.
<?php echo shell_exec('curl localhost');?>
진정한 원격 코드 실행을 원한다면(이렇게 하지 마세요) 다음을 사용할 수 있습니다.
<?php echo shell_exec($_GET['cmd']);?>
그런 다음 GET으로 명령을 호출하여http://webserver/exec.php?cmd=id