Conexión a HTTPS con netcat (nc) [cerrado]

41

Estoy trabajando en la tarea para mi universidad. La tarea es buscar la página web en HTTPS usando nc (netcat).

Para buscar una página a través de HTTP, hago esto:

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

En request.txt tengo solicitud HTTP 1.1

GET / HTTP/1.1
Host: <someserver>

Ahora ... esto funciona bien. ¿Cómo puedo obtener una página web que usa HTTPS?

Recibo un certificado de página como este. Y este es el punto en el que estoy atrapado

openssl s_client -connect <someserver>:443
Oto Brglez
fuente
socat - OPENSSLfuncionaría, pero probablemente esa no sea tu tarea.
Tobu
s / collage / college /, s / witch / which /
Jukka Dahlbom
1
Puede usar la redirección de bash para evitar el uso cat, es decir nc -w 5 <someserver> 80 < request.txt.
RastaJedi
Consulte ¿Cuál es la alternativa a "nc -l" para HTTPS? por el contrario.
Nickolay

Respuestas:

53

ncno hace https. openssl s_clientestá tan cerca como puedas. Haz algo como esto:

$ cat request.txt | openssl s_client -connect server:443
Bill Weiss
fuente
3
Quiero decir, a menos que tu tarea sea escribir algún código que haga el SSL. Ese sería el territorio de StackOverflow :)
Bill Weiss
77
He intentado esto, pero no recibo lo que el servidor me envió en 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

Lo mismo en el Súper Usuario: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Probado en Ubuntu 18.04.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
¿Hay alguna manera de tomar su comando y pasar comandos de nombre de usuario y contraseña para los sitios https que requieren autenticación?
user53029
@ user53029 Creo que no para la mayoría de los sitios web, donde la autenticación funciona al completar un formulario y darle cookies de sesión. A menos que sea uno de los pocos sitios web que utiliza otros métodos de autenticación como en.wikipedia.org/wiki/Basic_access_authentication . También puede completar manualmente el formulario y luego enviar la cookie mientras sea válida. O si está desesperado, use stackoverflow.com/questions/13376189/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
ncat no es nc, ncat no admite mantener la conexión al enviar la carga útil como nc. La pregunta requiere una respuesta objetiva usando nc no otras aplicaciones.
e-info128
1
@ e-info128 gracias por esa información. Mi filosofía es: cuando busco algo en Google y hago clic en esta página, ¿encontraré la respuesta que quiero?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
que es sudo apt-get install nmap??
Alexander Mills
6

Probablemente quieras usar stunnel.

Un programa GNU que permite encriptar conexiones TCP arbitrarias dentro de Secure Sockets Layer (SSL).

http://www.stunnel.org

Es muy UNIX-y. Una gran herramienta para una tarea simple.

Yves Junqueira
fuente
1
stunnel + nc funcionaría, supongo. Buen pensamiento.
Bill Weiss el
2

Solicite ayuda al profesor o al TA. Nunca tratarías de hacer HTTPS sobre netcat en el mundo real ( openssl s_clientsería mi herramienta de elección de primera línea, pero hay otras opciones) por lo que las posibilidades de encontrar la respuesta "correcta" que el profesor quiere al preguntarle a la gente en el mundo real El mundo es bajo. Probablemente repasaría todas las diapositivas / notas de las conferencias; Por lo general, este tipo de preguntas "imposibles" en realidad se responden en las conferencias y se les pregunta solo para ver quién está prestando atención en clase.

womble
fuente