ไม่ใช่ 100% หากนี่คือส่วนที่ถูกต้อง แต่ฉันคิดว่าเป็นเช่นนั้นเนื่องจากเป็นคำถามเกี่ยวกับวิธีการตั้งโปรแกรม
หลังจากเรียนวิชา Computer Networking ก็ได้ไอเดียสิ่งที่อยากลองทำบ้าง หนึ่งในสิ่งเหล่านี้คือการเข้าสู่หน้าเว็บที่โฮสต์อยู่ในเครื่องบน 'เราเตอร์' ของเราโดยอัตโนมัติ
ดังนั้นไซต์ดังกล่าวจึงเป็นไซต์ในพื้นที่ เช่น 192.168.150.1 - การคลิกที่ลิงก์ 'เข้าสู่ระบบฟรี' จะทำให้คุณเข้าสู่ระบบด้วยบัญชีหลอก ซึ่งเราจะเรียกว่าอลิซ (เรามีที่อยู่ IP 192.168.150.74.. ดังนั้นหากคุณคลิก ลิงก์ที่คุณจะส่งคำขอ GET เช่น:
192.168.0.1/login?dst=&username=T-Alice
ตอนนี้ฉันใช้ wireshark เพื่อตรวจสอบแพ็กเก็ตสตรีมและมันถูกเข้ารหัส - นี่คือแพ็กเก็ตสตรีม:
No. Time Source Destination Protocol Info
1 0.000000 192.168.150.74 192.168.150.1 TCP 50704 > https [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=37133 TSER=0 WS=7
2 0.001304 192.168.150.1 192.168.150.74 TCP https > 50704 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 SACK_PERM=1 TSV=17344316 TSER=37133 WS=1
3 0.001372 192.168.150.74 192.168.150.1 TCP 50704 > https [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSV=37133 TSER=17344316
4 0.001969 192.168.150.74 192.168.150.1 TLSv1 Client Hello
5 0.003568 192.168.150.1 192.168.150.74 TCP https > 50704 [ACK] Seq=1 Ack=406 Win=6864 Len=0 TSV=17344316 TSER=37133
6 0.010537 192.168.150.1 192.168.150.74 TLSv1 Server Hello, Certificate, Server Hello Done
7 0.010587 192.168.150.74 192.168.150.1 TCP 50704 > https [ACK] Seq=406 Ack=1132 Win=16896 Len=0 TSV=37134 TSER=17344316
8 0.013352 192.168.150.74 192.168.150.1 TLSv1 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
9 0.051304 192.168.150.1 192.168.150.74 TCP https > 50704 [ACK] Seq=1132 Ack=732 Win=7936 Len=0 TSV=17344321 TSER=37134
10 0.269299 192.168.150.1 192.168.150.74 TLSv1 Change Cipher Spec, Encrypted Handshake Message
11 0.270405 192.168.150.74 192.168.150.1 TLSv1 Application Data
12 0.271888 192.168.150.1 192.168.150.74 TCP https > 50704 [ACK] Seq=1191 Ack=1377 Win=9226 Len=0 TSV=17344343 TSER=37160
13 0.288841 192.168.150.1 192.168.150.74 TLSv1 Application Data, Application Data
14 0.328065 192.168.150.74 192.168.150.1 TCP 50704 > https [ACK] Seq=1377 Ack=2625 Win=19840 Len=0 TSV=37166 TSER=17344344
ตอนนี้สิ่งที่ผมอยากถาม (และทำ...) คือ:
เป็นไปได้ไหมที่จะสร้างโปรแกรม (โดยเฉพาะใน C หรือ C++ แต่ lang ไม่สำคัญเลย เว้นแต่บางโปรแกรมจะมี libs ที่ดีกว่า..) ที่ตั้งค่าการเชื่อมต่อที่ปลอดภัยนี้สำหรับฉัน เพื่อให้ฉันสามารถตั้งค่าข้อมูล GET เป็น เราเตอร์และเข้าสู่ระบบ? หรือมีวิธีโค้ดที่ง่ายกว่าในการทำเช่นนี้? ฉันสามารถปล่อยให้โปรแกรม 'เยี่ยมชม' 192.168.150.1 และปล่อยให้การสร้างแพ็กเก็ตและ SSL อยู่ที่เคอร์เนลได้หรือไม่ (--> แม้ว่าฉันคิดว่าแอปพลิเคชันจะต้องจัดการ SSL เองก็ตาม .. )
ยินดีต้อนรับทั้งโซลูชัน / คำแนะนำสำหรับ Windows และ unix .. ฉันต้องการทำสิ่งนี้สำหรับทั้งคู่
ขออภัยหากสิ่งนี้ 'น่าสับสน' ฉันพยายามถามคำถามให้ชัดเจนที่สุดเท่าที่จะทำได้ :p - ดังนั้นฉันจึงต้องการความช่วยเหลือเล็กน้อยในการส่งข้อมูล GET ไปยังเราเตอร์ ราวกับว่าฉันเยี่ยมชมหน้าด้วยตนเองและคลิกลิงก์ .