Connexion à HTTPS avec netcat (nc) [fermé]

43

Je travaille sur des devoirs pour mon collège. La tâche consiste à récupérer une page Web sur HTTPS à l'aide de nc (netcat).

Pour récupérer une page via HTTP, procédez comme suit:

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

Dans request.txt, j'ai une requête HTTP 1.1

GET / HTTP/1.1
Host: <someserver>

Maintenant ... ça marche bien. Comment puis-je récupérer une page Web utilisant HTTPS?

Je reçois un certificat de page comme celui-ci. Et c'est le point sur lequel je suis coincé

openssl s_client -connect <someserver>:443
Oto Brglez
la source
socat - OPENSSLfonctionnerait, mais ce n'est probablement pas votre tâche.
Tobu
s / collage / collège /, s / sorcière / qui /
Jukka Dahlbom
1
Vous pouvez utiliser la redirection bash pour éviter d’utiliser cat, par exemple nc -w 5 <someserver> 80 < request.txt.
RastaJedi

Réponses:

54

ncne fait pas https. openssl s_clientest aussi proche que vous obtiendrez. Faites quelque chose comme ça:

$ cat request.txt | openssl s_client -connect server:443
Bill Weiss
la source
3
Je veux dire, à moins que votre tâche consiste à écrire un code utilisant le protocole SSL. Ce serait le territoire de StackOverflow :)
Bill Weiss
7
J'ai essayé cela, mais je ne comprends pas ce que le serveur m'a renvoyé 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

Idem pour le super utilisateur: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Testé sur Ubuntu 18.04.

Ciro Santilli 改造 中心 六四 事件
la source
y a-t-il un moyen de prendre votre commande et de lui transmettre des commandes de nom d'utilisateur et de mot de passe pour les sites https nécessitant une authentification?
user53029
@ user53029 Je ne pense pas pour la plupart des sites Web, où l'authentification fonctionne en remplissant un formulaire et en vous fournissant des cookies de session. Sauf si c'est l'un des rares sites Web qui utilise d'autres méthodes d'authentification, comme en.wikipedia.org/wiki/Basic_access_authentication . Vous pouvez également remplir manuellement le formulaire, puis envoyer le cookie tant qu'il est valide. Ou, si vous êtes désespéré, utilisez stackoverflow.com/questions/13376189/…
Ciro Santilli a écrit: Filles
ncat n'est pas nc, ncat ne prend pas en charge la conservation de la connexion lors de l'envoi de la charge utile comme en tant que nc. La question nécessite une réponse objective en utilisant nc pas les autres applications.
e-info128
1
@ e-info128 merci pour cette info. Ma philosophie est la suivante: lorsque je recherche quelque chose sur Google et que je clique sur cette page, vais-je trouver la réponse que je veux?
Ciro Santilli au mois de
qu'est-ce que c'est sudo apt-get install nmap??
Alexander Mills
6

Vous voulez probablement utiliser Stunnel.

Un programme GNU permettant de chiffrer des connexions TCP arbitraires à l'intérieur de Secure Sockets Layer (SSL).

http://www.stunnel.org

C'est très UNIX-y. Un excellent outil pour une tâche simple.

Yves Junqueira
la source
1
Stunnel + NC fonctionnerait, je suppose. Bonne pensée.
Bill Weiss
2

Demander l'aide du prof ou de l'AT. Vous n'essaieriez jamais de faire HTTPS sur netcat dans le monde réel (ce openssl s_clientserait mon outil de choix en première ligne, mais il y a d'autres options), donc les chances de trouver la "bonne" réponse que le prof souhaite en posant des le monde est bas. Je passerais probablement en revue toutes les diapositives / notes des conférences; généralement, ce genre de questions "impossibles" reçoit une réponse dans les exposés et est simplement demandé pour voir qui est réellement attentif en classe.

femme
la source