การเชื่อมต่อกับ 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จะทำงานได้ แต่นั่นอาจไม่ใช่งานที่คุณมอบหมาย
Tobu

s / จับแพะชนแกะ / วิทยาลัย /, s / แม่มด / ซึ่ง /
Jukka Dahlbom

1
คุณสามารถใช้การเปลี่ยนเส้นทางทุบตีหลีกเลี่ยงการใช้คือcat nc -w 5 <someserver> 80 < request.txt
RastaJedi

คำตอบ:


53

ncไม่ได้ทำ https openssl s_clientใกล้เคียงกับที่คุณจะได้รับ ทำสิ่งนี้:

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

3
ฉันหมายความว่านอกจากการมอบหมายของคุณคือการเขียนโค้ดบางอย่างที่ทำ SSL นั่นจะเป็นอาณาเขตของ StackOver :)
Bill Weiss

6
ฉันได้ลองแล้ว แต่ฉันไม่ได้รับสิ่งที่เซิร์ฟเวอร์ส่งกลับมาให้ฉันใน stdout ...
หมากิน cat world cat

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

ทดสอบบน Ubuntu 18.04


มีวิธีใดบ้างที่จะใช้คำสั่งของคุณและส่งคำสั่งชื่อผู้ใช้และรหัสผ่านลงในไซต์ https ที่ต้องการการรับรองความถูกต้อง?
user53029

@ user53029 ฉันคิดว่าไม่ใช่สำหรับเว็บไซต์ส่วนใหญ่ที่การรับรองความถูกต้องใช้งานได้โดยกรอกแบบฟอร์มและมอบคุกกี้เซสชันให้คุณ เว้นแต่จะเป็นหนึ่งในเว็บไซต์ที่น้อยมากที่ใช้วิธีการอื่น ๆ ของการตรวจสอบเช่นen.wikipedia.org/wiki/Basic_access_authentication คุณสามารถกรอกแบบฟอร์มด้วยตนเองแล้วส่งคุกกี้ในขณะที่มันถูกต้อง หรือถ้าคุณหมดหวังใช้stackoverflow.com/questions/13376189/ …
Ciro Santilli 事件改造中心中心法轮功六四事件

ncat ไม่ใช่ nc, ncat ไม่รองรับการเชื่อมต่อส่ง payload เหมือน nc คำถามนี้ต้องการการตอบสนองแบบ objetive โดยใช้ nc ไม่ใช่แอพอื่น
e-info128

1
@ e-info128 ขอบคุณสำหรับข้อมูลนั้น ปรัชญาของฉันคือเมื่อฉัน google เพื่ออะไรและฉันคลิกที่หน้านี้ฉันจะหาคำตอบที่ฉันต้องการ
Ciro Santilli 事件改造中心法轮功六四事件

สิ่งที่เป็นsudo apt-get install nmap??
Alexander Mills

6

คุณอาจต้องการใช้ stunnel

โปรแกรม GNU ที่อนุญาตให้เข้ารหัสการเชื่อมต่อ TCP โดยพลการภายใน Secure Sockets Layer (SSL)

http://www.stunnel.org

เป็น UNIX-y มาก ๆ เครื่องมือที่ยอดเยี่ยมหนึ่งเดียวสำหรับงานง่ายๆ


1
stunnel + nc ก็ใช้ได้ฉันคิดว่า ความคิดที่ดี
Bill Weiss

2

ถามศาสตราจารย์หรือ TA เพื่อขอความช่วยเหลือ คุณจะไม่พยายามทำ HTTPS ผ่าน netcat ในโลกแห่งความเป็นจริง ( openssl s_clientเป็นเครื่องมือบรรทัดแรกที่ฉันเลือก แต่มีตัวเลือกอื่น ๆ ) ดังนั้นโอกาสในการค้นหาคำตอบ "ถูกต้อง" ที่ศาสตราจารย์ต้องการโดยการถามคนจริง โลกต่ำ ฉันอาจจะไปดูสไลด์ / โน้ตทั้งหมดจากการบรรยาย โดยทั่วไปแล้วคำถามที่ "เป็นไปไม่ได้" เหล่านี้มักจะถูกตอบในการบรรยายและขอแค่ดูว่าใครสนใจจริง ๆ ในชั้นเรียน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.