HTTPS को netcat (nc) से जोड़ना [बंद]


41

मैं अपने कॉलेज के लिए होमवर्क असाइनमेंट पर काम कर रहा हूं। टास्क HTTPS पर nc (netcat) का उपयोग करके वेब पेज लाना है।

HTTP पर एक पेज लाने के लिए, मैं यह करता हूं:

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

Request.txt में मेरे पास HTTP 1.1 अनुरोध है

GET / HTTP/1.1
Host: <someserver>

अब ... यह ठीक काम करता है। मैं HTTPS का उपयोग करने वाले वेब पेज को कैसे ला सकता हूं?

मुझे इस तरह पेज सर्टिफिकेट मिलता है। और यह वह बिंदु है जिसमें मैं फंस गया हूं

openssl s_client -connect <someserver>:443

socat - OPENSSLकाम करेगा, लेकिन यह शायद आपका काम नहीं है।
तोबू

s /
Collage

1
उपयोग करने से बचने के लिए आप बैश पुनर्निर्देशन का उपयोग कर सकते हैं cat, अर्थात nc -w 5 <someserver> 80 < request.txt
रस्ताजेडी

देखें कि HTTPS के लिए "nc -l" का क्या विकल्प है? दूसरे रास्ते के लिए।
निकोले

जवाबों:


53

nchttps नहीं करता है। openssl s_clientआप जितने पास होंगे। कुछ इस तरह से करें:

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

3
मेरा मतलब है, जब तक कि आपका असाइनमेंट एसएसएल करने वाले कुछ कोड को लिखना नहीं है। यह स्टैकऑवरफ्लो क्षेत्र होगा :)
बिल वीस

6
मैंने यह कोशिश की है, लेकिन मुझे नहीं मिलता है कि सर्वर मुझे stdout में वापस भेजते हैं ...
कुत्ता बिल्ली दुनिया को खाएं

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

सुपर उपयोगकर्ता पर समान: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

उबंटू 18.04 पर परीक्षण किया गया।


क्या आपके पास https साइटों के लिए अपनी कमांड लेने और उपयोगकर्ता नाम और पासवर्ड कमांड पास करने का कोई तरीका है जिसे प्रमाणीकरण की आवश्यकता है?
user53029

@ user53029 मुझे लगता है कि अधिकांश वेबसाइटों के लिए नहीं, जहां प्रमाणीकरण एक फ़ॉर्म को भरने और आपको एक सत्र कुकीज़ देने का काम करता है। जब तक कि यह बहुत कम वेबसाइटों में से एक है जो प्रमाणीकरण के अन्य तरीकों जैसे कि en.wikipedia.org/wiki/Basic_access_authentication का उपयोग करता है । आप मैन्युअल रूप से भी फॉर्म भर सकते हैं, और फिर इसे मान्य होने पर कुकी भेज सकते हैं। या अगर आप हताश हैं, तो आप stackoverflow.com/questions/13376189/…
Ciro Santilli 中心 per per per 六四

ncat nc नहीं है, ncat nc जैसे पेलोड भेजने पर कनेक्शन रखने का समर्थन नहीं करता है। इस सवाल के लिए दूसरों के ऐप्स का उपयोग करते हुए एक निष्पक्ष प्रतिक्रिया की आवश्यकता है।
ई-इंफो128 १५

1
@ e-info128 उस जानकारी के लिए धन्यवाद। मेरा दर्शन है: जब मैं किसी चीज़ के लिए गूगल करता हूं, और मैं इस पृष्ठ पर क्लिक करता हूं, तो क्या मुझे वह उत्तर मिलेगा जो मुझे चाहिए।
सिरो सेंटिल्ली 新疆 改造 iro i

क्या है sudo apt-get install nmap??
अलेक्जेंडर मिल्स

6

आप शायद stunnel का उपयोग करना चाहते हैं।

एक GNU प्रोग्राम सुरक्षित सॉकेट लेयर (SSL) के अंदर मनमाने टीसीपी कनेक्शन को एन्क्रिप्ट करने की अनुमति देता है।

http://www.stunnel.org

यह बहुत UNIX-y है। एक साधारण कार्य के लिए एक महान उपकरण।


1
stunnel + nc काम करेगा, मुझे लगता है। अच्छा विचार।
बिल वीस

2

सहायता के लिए प्रोफेसर या टीए से पूछें। आप वास्तविक दुनिया में netcat पर HTTPS करने की कोशिश कभी नहीं करेंगे ( openssl s_clientमेरी पसंद का पहला लाइन टूल होगा, लेकिन अन्य विकल्प भी हैं) इसलिए "सही" उत्तर खोजने की संभावना है कि प्रोफेसर वास्तविक लोगों से पूछकर क्या चाहता है दुनिया कम है। मैं शायद व्याख्यान से सभी स्लाइड्स / नोट्स पर जाऊंगा; आम तौर पर "असंभव" प्रश्नों के इन प्रकारों का वास्तव में व्याख्यान में उत्तर दिया जाता है, और केवल यह देखने के लिए कहा जाता है कि वास्तव में कक्षा में कौन ध्यान दे रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.