Netcat (nc) ile HTTPS'ye bağlanma [kapalı]


41

Üniversitem için ödev vermeye çalışıyorum. Görev, nc (netcat) kullanarak HTTPS'deki web sayfasını almaktır.

HTTP üzerinden bir sayfa getirmek için şunu yapıyorum:

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

Request.txt HTTP 1.1 isteğim var

GET / HTTP/1.1
Host: <someserver>

Şimdi ... Bu iyi çalışıyor. HTTPS kullanan web sayfasını nasıl alabilirim?

Bunun gibi sayfa sertifikası alıyorum. Ve bu benim sıkışıp kaldığım nokta

openssl s_client -connect <someserver>:443

socat - OPENSSLçalışırdı, ama bu muhtemelen senin görevin değil.
— Tobu,

s / kolaj / kolej /, s / cadı / hangi /
— Jukka Dahlbom

1
catÖrneğin , tekrar kullanmak için bash yönlendirmesini kullanabilirsiniz nc -w 5 <someserver> 80 < request.txt.
— RastaJedi

Yanıtlar:


53

nchttps yapmaz. openssl s_clientalabildiğin kadar yakın. Böyle bir şey yapın:

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

3
Yani, ödevin SSL'yi yapan bir kod yazmak değilse. Bu StackOverflow bölgesi olacak :)
— Bill Weiss,

6
Bunu denedim ama sunucunun stdout'ta bana ne gönderdiğini anlamadım ...
— Köpek kedi dünyasını yiyor

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

Süper Kullanıcı ile Aynı: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Ubuntu 18.04'te test edilmiştir.


komutunu almanın ve kimlik doğrulama gerektiren https siteleri için kullanıcı adı ve parola komutlarını ona aktarmanın bir yolu var mı?
— user53029

@ user53029 Kimlik doğrulamanın bir formu doldurarak ve size oturum çerezleri vererek çalıştığı çoğu web sitesi için olmadığını düşünüyorum. En.wikipedia.org/wiki/Basic_access_authentication gibi başka kimlik doğrulama yöntemlerini kullanan çok az web sitesinden biri değilse . Ayrıca formu el ile doldurabilir ve geçerliyken çerezi gönderebilirsiniz. Ya da
— çaresizseniz

ncat nc değil, ncat nc gibi yükü gönderirken bağlantıyı korumayı desteklemiyor. Soru nc kullanarak diğer uygulamaları kullanarak objektif bir yanıt gerektirir.
— e-info128

1
@ e-info128 bu bilgi için teşekkürler. Felsefem: bir şey için google olduğunda ve bu sayfaya tıkladığımda istediğim cevabı bulacağım.
— Ciro Santilli,

nedir sudo apt-get install nmap??
— Alexander Mills,

6

Muhtemelen stunnel kullanmak istersiniz.

Güvenli Yuva Katmanı (SSL) içindeki keyfi TCP bağlantılarını şifrelemeye izin veren bir GNU programı.

http://www.stunnel.org

Çok UNIX-y. Basit bir görev için mükemmel bir araç.


1
stunnel + nc işe ​​yarayacağını sanırım. Güzel düşünce.
— Bill Weiss

2

Yardım için prof veya TA isteyin. Gerçek dünyada hiçbir zaman netcat üzerinden HTTPS yapmayı denemezsiniz ( openssl s_clientilk tercihim aracı olurdum, fakat başka seçenekler de var). dünya düşük Muhtemelen derslerden tüm slaytları / notları gözden geçirirdim; Tipik olarak bu tür "imkansız" sorular, derslerde gerçekte cevaplanır ve sadece sınıfta gerçekte kimin dikkat ettiğini görmek ister.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.