เป็นความจริงไหมว่าทุกสิ่งที่คุณทำบนเว็บเช่นการท่องเว็บและอ่านอีเมลที่คุณสามารถทำได้กับ Telnet?
netcat
รายการ ในทางกลับกันsocat
ก็เหมือนกันทุกที่
เป็นความจริงไหมว่าทุกสิ่งที่คุณทำบนเว็บเช่นการท่องเว็บและอ่านอีเมลที่คุณสามารถทำได้กับ Telnet?
netcat
รายการ ในทางกลับกันsocat
ก็เหมือนกันทุกที่
คำตอบ:
ใช่แม้ว่าจะเสียประโยชน์จากการบีบอัดและการทำงานกับการตอบกลับแบบ GET หรือการเข้ารหัส / การเข้าสู่ระบบ / รหัสผ่านแบบ 64 บิตใน SMTP จะเจ็บปวดดังนั้นฉันจะไม่แนะนำให้ใช้จริงยกเว้นการทดสอบใช้ Perl หรือ python ถ้าคุณต้องการ เพื่อทำบางสิ่งบนเว็บโดยอัตโนมัติ
นอกจากนี้หากคุณต้องการทำคำขอที่แยกไม่ออกจากสิ่งที่เบราว์เซอร์บางตัวทำ (การทำเช่นนี้เป็นเรื่องจริงที่น่าเศร้าเมื่อคุณพยายามทำงานกับไซต์ที่ได้รับการป้องกันโดยระบบเช่นพฤติกรรมแย่) ลองเขียนมินิ - เซิร์ฟเวอร์ที่จะส่งออกคำต่อคำคำขอของคุณ (มีตัวอย่างดังกล่าวบินไปรอบ ๆ แต่พวกเขาอาจจะต้องมีการแก้ไขเล็กน้อย) จากนั้นคุณจะสามารถใช้เป็นเทมเพลตเพื่อส่งคำของ่ายๆไปยังไซต์ดังกล่าว
ตัวอย่างเช่นลอง
telnet google.com 80
เมื่อเริ่มต้นเสร็จแล้วให้พิมพ์
GET / HTTP/1.0
และกด ENTER สองครั้ง (ตามที่โปรโตคอล HTTP ต้องการ) คุณจะได้รับการตอบกลับ 302 ครั้งโดยปกติแล้วเบราว์เซอร์จะใช้เพื่อเปลี่ยนเส้นทางคุณไปยัง WWW.google.com
Telnet สามารถใช้สำหรับการเชื่อมต่อ TCP แบบดิบ (เกือบ) และคุณสามารถใช้โปรโตคอลแบบอักขระได้ แต่มีความแตกต่าง :
ดังนั้นแอปพลิเคชันไคลเอนต์ Telnet อาจถูกใช้เพื่อสร้างเซสชัน TCP แบบโต้ตอบดิบและเป็นที่เชื่อกันโดยทั่วไปว่าเซสชันดังกล่าวซึ่งไม่ได้ใช้ IAC (\ 377 ตัวอักษรหรือ 255 ในรูปทศนิยม) เป็นหน้าที่เหมือนกัน นี่ไม่ใช่กรณีอย่างไรก็ตามเนื่องจากมีกฎเครือข่ายเสมือนเทอร์มินัลเสมือน (NVT) อื่น ๆ เช่นข้อกำหนดสำหรับอักขระคืนค่าขนส่งเปล่า (CR, ASCII 13) ที่จะตามด้วยอักขระ NULL (ASCII 0) ที่แยกความแตกต่าง โปรโตคอล telnet จากเซสชัน TCP ดิบ
มิฉะนั้นคุณสามารถใช้โปรโตคอลเลเยอร์แอปพลิเคชันแบบอักขระเช่น HTTP, FTP, SMTP และ IRC โดยใช้ Telnet เนื่องจากมันค่อนข้างท้าทายในการอ่านและเขียนข้อมูลที่ถูกบีบอัดด้วยตนเองคุณ จำกัด อยู่ที่ HTTP โดยไม่มีการบีบอัดของ HTTP / 1.1 สำหรับโปรโตคอลที่เป็นเลขฐานสองทั้งหมดคุณค่อนข้างโชคดี
telnet
จาก GNU "inetutils", Arch "telnet-bsd", Debian "krb5-clients", Debian "netkit-telnet-ssl", PuTTY-svn r9020, Windows XP "telnet.exe", Windows 98 "telnet exe ", Windows XP" HyperTerminal "และพวกเขาทั้งหมดส่ง CR / LF และตอบสนองต่อการเจรจาต่อรองตัวเลือก Telnetโดยไม่คำนึงถึงพอร์ต TCP ที่ใช้โดยเซิร์ฟเวอร์ (ในการทดสอบนี้ tcp / 9) ความแตกต่างเพียงอย่างเดียวคือบางส่วนของพวกเขา (เช่น PuTTY) เริ่มต้น nego โดยไม่ต้องรอให้เซิร์ฟเวอร์ทำ
ในทางเทคนิคแล้วคุณสามารถทำได้ แต่ในทางปฏิบัติการพูดคำตอบคือ:
ตัวอย่างเช่นฉันสามารถใช้เว็บเพจได้
telnet www.page.com 80
แต่ฉันจะได้รับข้อความ html จากมันไม่ใช่, css, รูปภาพและทรัพยากรอื่น ๆ
จากนั้นด้วยไฟล์ html คุณสามารถรับไฟล์อื่น ๆ ทุกไฟล์ด้วยการโทร telnet ติดต่อกัน css เป็น "เรื่องไม่สำคัญ" ที่จะได้รับมันเป็นเหมือนกันที่จะได้รับไฟล์เช่นเดียวกับ js และไฟล์ "รวม" อื่น ๆ แต่ไบนารีนั้นไม่ใช่เรื่องง่ายเพราะฉันต้องดาวน์โหลดแล้วประมวลผลโดยไม่ต้องนับว่าทรัพยากรบางอย่างจำเป็นต้องใช้คุกกี้ที่เฉพาะเจาะจงและการอ้างอิง
และเว็บไซต์อาจบังคับให้บีบอัด z และ "รายละเอียด" อื่น ๆ อีกมากมายที่ "ละเอียด" ในข้อกำหนดของโปรโตคอลโปรโตคอลที่แทบจะไม่ได้รับการแก้ไขและมีข้อยกเว้นหลายประการ
ในขณะที่เป็นไปได้ แต่มันก็เหมือนกันในการสร้างบริการ / โปรโตคอลที่มีอยู่ตั้งแต่เริ่มต้นดังนั้นมันก็เหมือนกันที่จะพูดว่า "ฉันสามารถสร้าง Windows ได้เพียง" poking "เลขศูนย์และคน <- เป็นไปได้ แต่มันจะใช้เวลานานมากในการทำสิ่งนั้น
ตัวอย่างของเว็บไซต์ที่คุณไม่สามารถโหลดได้อย่างเต็มที่คือ gmail.com เพราะมันมีความซับซ้อนเป็นพิเศษเช่น: จาวาสคริปต์ (ยกเว้น Lynx เพราะไม่ใช่เจ้าของภาษาและไม่ใช่ประสบการณ์จริง)
อย่างไรก็ตามเว็บและอีเมลภายนอกมีโปรโตคอลบางอย่างที่ไม่สามารถเข้าถึงได้โดยใช้ telnet ธรรมดาเพราะต้องมีการจับมือกันในเวลาที่เหมาะสม (ไม่กี่วินาทีถ้าไม่น้อยกว่า) ที่ไม่สามารถลอกเลียนแบบได้โดยใช้การแยกการโทรไปยัง telnet สองครั้ง ใช้การจัดเรียงอัตโนมัติบางอย่างเช่นเรากำลังพูดถึงลูกค้าที่ไม่ได้เป็นลูกค้า telnet ที่เหมาะสม แต่มันมากกว่า