다음에서 zip 파일을 다운로드하려고 합니다.https://download.sysinternals.com/files/ProcessExplorer.zip(컬링 및 WGET 없음). netcat을 통해 이 작업을 수행하고 싶습니다. 다음 명령을 사용했습니다.
echo -e "GET
https://download.sysinternals.com/files/ProcessExplorer.zip HTTP/1.1\r\nHost: download.sysinternals.com\r\n\r\n" | nc download.sysinternals.com 80 > q.zip
파일이 하드 드라이브에 기록되었지만 열려고 하면 손상되었습니다.
답변1
내가 아는 한 netcat
HTTPS는 사용할 수 없지만 코드에서는 HTTPS가 아닌 HTTP를 의미하는 포트 80에 연결하고 있습니다.
그 다음에는 GET
전체 주소가 아닌 상대 주소를 추가해야 합니다.
다음과 같이 작동합니다.
echo -e "GET /files/ProcessExplorer.zip HTTP/1.1\r\nHost: download.sysinternals.com\r\n\r\n" | nc download.sysinternals.com 80 > q.temp
전송이 완료된 후에도 닫히지 않으며, 수동으로 닫아주셔야 합니다.
이 시점에서 q.temp
파일에는 제거해야 하는 HTTP 헤더도 포함되어 있습니다. 바이너리 내용이 시작되는 줄 번호를 확인할 수 있습니다.
nl q.temp | less
이 경우 바이너리 내용은 16행에서 시작하므로 다음을 사용하여 헤더를 제거할 수 있습니다.
tail -n +16 q.temp > q.zip
이것은 zip 파일입니다!