Conectando ao HTTPS com netcat (nc) [fechado]


41

Estou trabalhando na tarefa de casa para a minha faculdade. A tarefa é buscar uma página da Web em HTTPS usando nc (netcat).

Para buscar uma página por HTTP, eu faço o seguinte:

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

Em request.txt, tenho uma solicitação HTTP 1.1

GET / HTTP/1.1
Host: <someserver>

Agora ... Isso funciona bem. Como posso buscar uma página da web que usa HTTPS?

Recebo certificado de página como este. E este é o ponto em que estou preso

openssl s_client -connect <someserver>:443

socat - OPENSSLfuncionaria, mas essa provavelmente não é sua tarefa.
Tobu

s / colagem / faculdade /, s / bruxa / que /
Jukka Dahlbom

1
Você pode usar o redirecionamento do bash para evitar o uso cat, ou seja nc -w 5 <someserver> 80 < request.txt.
RastaJedi 03/08/19

Respostas:


53

ncnão faz https. openssl s_clienté o mais próximo possível. Faça algo parecido com isto:

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

3
Quero dizer, a menos que sua tarefa seja escrever algum código que faça o SSL. Esse território seria StackOverflow :)
Bill Weiss

7
Eu tentei isso, mas eu não recebo o que o servidor envia de volta para mim no stdout ...
Dog eat cat world

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

Mesmo no superusuário: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Testado no Ubuntu 18.04.


existe alguma maneira de tomar seu comando e passar comandos de nome de usuário e senha para sites https que exigem autenticação?
user53029

@ user53029 Acho que não para a maioria dos sites, onde a autenticação funciona preenchendo um formulário e fornecendo cookies de sessão. A menos que seja um dos poucos sites que usa outros métodos de autenticação, como en.wikipedia.org/wiki/Basic_access_authentication . Você também pode preencher manualmente o formulário e enviar o cookie enquanto ele é válido. Ou se você está desesperado uso stackoverflow.com/questions/13376189/...
Ciro Santilli新疆改造中心法轮功六四事件

ncat não é nc, o ncat não suporta manter a conexão ao enviar a carga útil como nc. A pergunta requer uma resposta objetiva usando aplicativos nc e não outros.
e-info128

1
@ e-info128 obrigado por essa informação. Minha filosofia é: quando eu procurar algo e clicar nesta página, encontrarei a resposta que desejo.
Ciro Santilli escreveu:

o que é sudo apt-get install nmap??
Alexander Mills

6

Você provavelmente quer usar stunnel.

Um programa GNU que permite criptografar conexões TCP arbitrárias dentro do Secure Sockets Layer (SSL).

http://www.stunnel.org

É muito UNIX-y. Uma ótima ferramenta para uma tarefa simples.


1
stunnel + nc funcionaria, suponho. Bom pensamento.
Bill Weiss

2

Peça ajuda ao professor ou à AT. Você nunca tentaria fazer HTTPS sobre netcat no mundo real ( openssl s_clientseria minha ferramenta de primeira linha, mas existem outras opções), portanto, as chances de encontrar a resposta "certa" que o professor deseja, perguntando às pessoas reais mundo é baixo. Eu provavelmente revisaria todos os slides / notas das palestras; Normalmente, esse tipo de perguntas "impossíveis" são realmente respondidas nas palestras e solicitadas apenas para ver quem está prestando atenção na aula.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.