Connessione a HTTPS con netcat (nc) [chiuso]


41

Sto lavorando ai compiti per il mio college. L'attività consiste nel recuperare la pagina Web su HTTPS utilizzando nc (netcat).

Per recuperare una pagina su HTTP, faccio questo:

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

In request.txt ho una richiesta HTTP 1.1

GET / HTTP/1.1
Host: <someserver>

Ora ... Funziona benissimo. Come posso recuperare la pagina Web che utilizza HTTPS?

Ricevo un certificato di pagina come questo. E questo è il punto in cui sono bloccato

openssl s_client -connect <someserver>:443

socat - OPENSSLfunzionerebbe, ma probabilmente non è questo il tuo compito.
Tobu,

s / collage / college /, s / strega / che /
Jukka Dahlbom

1
È possibile utilizzare il reindirizzamento bash per evitare l'utilizzo cat, ad es nc -w 5 <someserver> 80 < request.txt.
RastaJedi,

Risposte:


53

ncnon fa https. openssl s_clientè il più vicino possibile. Fai qualcosa del genere:

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

3
Voglio dire, a meno che il tuo compito non sia scrivere un codice che faccia SSL. Sarebbe territorio StackOverflow :)
Bill Weiss,

7
Ho provato questo, ma non ottengo ciò che il server mi restituisce in stdout ...
Cane mangia gatto mondo

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 stesso su Super User: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Testato su Ubuntu 18.04.


c'è un modo per prendere il tuo comando e passarci i comandi username e password per i siti https che richiedono autenticazione?
user53029

@ user53029 Penso che non per la maggior parte dei siti Web, in cui l'autenticazione funziona compilando un modulo e fornendoti cookie di sessione. A meno che non sia uno dei pochissimi siti Web che utilizza altri metodi di autenticazione come en.wikipedia.org/wiki/Basic_access_authentication . È inoltre possibile compilare manualmente il modulo e quindi inviare il cookie mentre è valido. Oppure, se siete disperati uso stackoverflow.com/questions/13376189/...
Ciro Santilli新疆改造中心法轮功六四事件

ncat non è nc, ncat non supporta mantenere la connessione per inviare il payload come nc. La domanda richiede una risposta obiettiva utilizzando nc non altre app.
e-info128,

1
@ e-info128 grazie per quelle informazioni. La mia filosofia è: quando cerco qualcosa su Google e faccio clic su questa pagina, troverò la risposta che desidero.
Ciro Santilli 25 改造 中心 法轮功 六四 事件

cos'è sudo apt-get install nmap??
Alexander Mills,

6

Probabilmente vuoi usare lo stunnel.

Un programma GNU che consente di crittografare connessioni TCP arbitrarie all'interno di Secure Sockets Layer (SSL).

http://www.stunnel.org

È molto UNIX-y. Un ottimo strumento per un semplice compito.


1
stunnel + nc avrebbe funzionato, suppongo. Buon pensiero.
Bill Weiss,

2

Chiedere assistenza al prof o all'AT. Non proveresti mai a fare HTTPS su netcat nel mondo reale ( openssl s_clientsarebbe il mio strumento di prima linea di scelta, ma ci sono altre opzioni) quindi le possibilità di trovare la risposta "giusta" che il prof vuole chiedendo alle persone nel reale il mondo è basso. Probabilmente ripasserei tutte le diapositive / note delle lezioni; in genere questo tipo di domande "impossibili" ricevono effettivamente una risposta durante le lezioni e viene chiesto solo per vedere chi presta effettivamente attenzione in classe.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.