Verbindung zu HTTPS mit netcat (nc) herstellen [closed]

41

Ich arbeite an Hausaufgaben für mein College. Aufgabe ist es, eine Webseite über HTTPS mit nc (netcat) abzurufen.

So rufen Sie eine Seite über HTTP ab:

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

In request.txt habe ich HTTP 1.1 Anfrage

GET / HTTP/1.1
Host: <someserver>

Nun ... Das funktioniert gut. Wie kann ich eine Webseite abrufen, die HTTPS verwendet?

Ich bekomme so ein Seitenzertifikat. Und in diesem Punkt stecke ich fest

openssl s_client -connect <someserver>:443
Oto Brglez
quelle
socat - OPENSSLwürde funktionieren, aber das ist wahrscheinlich nicht deine Aufgabe.
Tobu
s / collage / college /, s / witch / which /
Jukka Dahlbom
1
Sie können bash Umleitung zu vermeiden , mit verwenden cat, dh nc -w 5 <someserver> 80 < request.txt.
RastaJedi
Siehe Was ist die Alternative zu "nc -l" für HTTPS? für den umgekehrten Fall.
Nickolay,

Antworten:

53

ncmacht kein https. openssl s_clientist so nah wie möglich. Mach so etwas:

$ cat request.txt | openssl s_client -connect server:443
Bill Weiss
quelle
3
Ich meine, es sei denn, Ihre Aufgabe besteht darin, einen Code zu schreiben, der SSL ausführt. Das wäre StackOverflow-Gebiet :)
Bill Weiss
6
Ich habe es versucht, aber ich bekomme nicht, was der Server mir in Standardgröße zurücksendet ...
Hund frisst Katzenwelt
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

Gleiches gilt für Super User: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Getestet auf Ubuntu 18.04.

Ciro Santilli ist ein Schauspieler
quelle
Gibt es eine Möglichkeit, Ihren Befehl zu übernehmen und Benutzernamen- und Kennwortbefehle für https-Sites zu übergeben, für die eine Authentifizierung erforderlich ist?
user53029
@ user53029 Ich denke nicht für die meisten Websites, bei denen die Authentifizierung durch Ausfüllen eines Formulars und Ausgeben von Sitzungscookies funktioniert. Es sei denn, es ist eine der wenigen Websites, die andere Authentifizierungsmethoden wie en.wikipedia.org/wiki/Basic_access_authentication verwendet . Sie können das Formular auch manuell ausfüllen und das Cookie dann senden, solange es gültig ist. Oder wenn Sie verzweifelt sind, verwenden Sie stackoverflow.com/questions/13376189/…
Ciro Santilli
ncat ist nicht nc, ncat unterstützt keine Verbindung beim Senden der Nutzdaten wie nc. Die Frage erfordert eine objektive Antwort mit nc nicht anderen Apps.
e-info128
1
@ e-info128 danke für die info. Meine Philosophie ist: Wenn ich nach etwas google und auf diese Seite klicke, finde ich die Antwort, die ich will.
Ciro Santilli
was ist sudo apt-get install nmap??
Alexander Mills
6

Sie möchten wahrscheinlich stunnel verwenden.

Ein GNU-Programm, mit dem beliebige TCP-Verbindungen innerhalb von Secure Sockets Layer (SSL) verschlüsselt werden können.

http://www.stunnel.org

Es ist sehr UNIX-y. Ein großartiges Werkzeug für eine einfache Aufgabe.

Yves Junqueira
quelle
1
stunnel + nc würde wohl funktionieren. Guter Gedanke.
Bill Weiss
2

Bitten Sie den Professor oder TA um Hilfe. Sie würden niemals versuchen, HTTPS über Netcat in der realen Welt durchzuführen (dies openssl s_clientwäre mein erstes Werkzeug der Wahl, aber es gibt andere Möglichkeiten), um die Chance zu haben, die "richtige" Antwort zu finden, die der Profi wünscht, indem er Leute in der realen Welt fragt Welt ist niedrig. Ich würde wahrscheinlich alle Folien / Notizen aus den Vorlesungen durchgehen; In der Regel werden solche "unmöglichen" Fragen in den Vorlesungen beantwortet und nur gefragt, wer im Unterricht tatsächlich aufpasst.

womble
quelle