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.