netcat (nc)를 사용하여 HTTPS에 연결 [닫기]


41

저는 대학에서 숙제를하고 있습니다. 작업은 nc (netcat)를 사용하여 HTTPS에서 웹 페이지를 가져 오는 것입니다.

HTTP를 통해 페이지를 가져 오려면 다음과 같이하십시오.

cat request.txt | nc -w 5 <someserver> 80

request.txt에 HTTP 1.1 요청이 있습니다.

GET / HTTP/1.1
Host: <someserver>

자 .. 이것은 잘 작동합니다. HTTPS를 사용하는 웹 페이지를 가져 오려면 어떻게해야합니까?

나는 이와 같은 페이지 인증서를 얻는다. 그리고 이것은 내가 붙어있는 지점입니다

openssl s_client -connect <someserver>:443

socat - OPENSSL작동하지만 아마도 귀하의 임무가 아닐 수도 있습니다.
Tobu

s / collage / college /, s / witch / which /
Jukka Dahlbom

1
bash 리디렉션을 사용하여 cat, 즉을 사용하지 않도록 할 수 있습니다 nc -w 5 <someserver> 80 < request.txt.
RastaJedi

HTTPS에 대한 "nc -l"의 대안무엇입니까?를 참조하십시오 . 다른 방법으로.
Nickolay

답변:


53

nchttps를하지 않습니다. openssl s_client당신이 얻을만큼 가까이. 다음과 같이하십시오 :

$ cat request.txt | openssl s_client -connect server:443

3
SSL을 수행하는 코드를 작성하는 것이 아니라면. 그것은 StackOverflow 지역이 될 것입니다 :)
Bill Weiss

6
표준 출력에서 나에게 서버 전송 다시는 ... 내가이 시도했습니다,하지만 난하지 않습니다
개는 고양이 세계 먹고

32

ncat --ssl

sudo apt-get install nmap
printf 'GET / HTTP/1.1\r\nHost: github.com\r\n\r\n' | ncat --ssl github.com 443

수퍼 유저와 동일 : https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

우분투 18.04에서 테스트되었습니다.


인증이 필요한 https 사이트에 대해 명령을 받아서 username 및 password 명령을 전달할 수있는 방법이 있습니까?
user53029

@ user53029 양식을 채우고 세션 쿠키를 제공하여 인증이 작동하는 대부분의 웹 사이트에는 해당되지 않습니다. en.wikipedia.org/wiki/Basic_access_authentication 과 같은 다른 인증 방법을 사용하는 소수의 웹 사이트 중 하나가 아닌 한 . 수동으로 양식을 작성한 다음 쿠키가 유효한 동안 쿠키를 보낼 수도 있습니다. 또는 절박한 경우 stackoverflow.com/questions/13376189/…를
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

ncat은 nc가 아니며 ncat은 nc와 같은 페이로드를 보낼 때 연결 유지를 지원하지 않습니다. 이 질문에는 다른 앱이 아닌 nc를 사용하는 철저한 응답이 필요합니다.
e-info128

1
그 정보에 감사드립니다. 내 철학은 : 내가 뭔가를 구글 검색 하고이 페이지를 클릭하면 내가 원하는 답변을 찾을 수 있을까요.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

무엇 sudo apt-get install nmap입니까 ??
Alexander Mills

6

stunnel을 사용하고 싶을 것입니다.

SSL (Secure Sockets Layer) 내에서 임의의 TCP 연결을 암호화 할 수있는 GNU 프로그램입니다.

http://www.stunnel.org

매우 유닉스입니다. 하나의 간단한 작업을위한 훌륭한 도구입니다.


1
stunnel + nc가 작동한다고 가정합니다. 좋은 생각이야
Bill Weiss

2

전문가 또는 TA에게 도움을 요청하십시오. 실제 세계에서는 netcat를 통해 HTTPS를 시도하지 openssl s_client않을 것 입니다 ( 내가 선택한 첫 번째 도구이지만 다른 옵션이 있습니다). 세계는 낮습니다. 강의의 모든 슬라이드 / 노트를 살펴볼 것입니다. 일반적으로 이러한 종류의 "불가능한"질문은 실제로 강의에서 답변되며 누가 수업에서 실제로주의를 기울이고 있는지를 묻습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.