บริการ 301party.com เผยช่องโหว่ด้านความปลอดภัยในเว็บแอปพลิเคชันผ่าน Open Redirects ที่ตั้งใจสร้างขึ้น

ทีมชุมชน BigGo
บริการ 301party.com เผยช่องโหว่ด้านความปลอดภัยในเว็บแอปพลิเคชันผ่าน Open Redirects ที่ตั้งใจสร้างขึ้น

บริการเว็บใหม่ที่เรียกว่า 301party.com ได้เกิดขึ้นในฐานะทั้งเครื่องมือทดสอบและการสาธิตความเสี่ยงด้านความปลอดภัยที่ร้ายแรงในเว็บแอปพลิเคชัน บริการนี้จัดเตรียมฟังก์ชัน open redirect อย่างตั้งใจ ช่วยให้ผู้ใช้สามารถเปลี่ยนเส้นทาง HTTP requests ไปยังปลายทางใดก็ได้ที่ระบุ แม้ว่าจะถูกออกแบบมาเป็นเครื่องมือสำหรับทดสอบพฤติกรรมการเปลี่ยนเส้นทาง แต่แพลตฟอร์มนี้ได้จุดประกายการอภิปรายเกี่ยวกับผลกระทบด้านความปลอดภัยของบริการดังกล่าว

การใช้ประโยชน์จากการข้ามระบบการยืนยันตัวตน

บริการนี้ได้รับการใช้งานจริงในหมู่นักพัฒนาและนักวิจัยด้านความปลอดภัยที่ต้องการข้ามข้อจำกัดของ callback URL ที่เข้มงวดในระบบการยืนยันตัวตน หลายแพลตฟอร์มบล็อกที่อยู่ localhost หรือ 127.0.0.1 ในการกำหนดค่า callback แต่ 301party.com มีวิธีการแก้ไขอย่างชาญฉลาดผ่าน DNS records บริการนี้แมป localhost.301party.com ตรงไปยัง 127.0.0.1 ซึ่งช่วยหลีกเลี่ยงมาตรการความปลอดภัยเหล่านี้ได้อย่างมีประสิทธิภาพ

คุณไม่สามารถเพิ่ม 127.0.0.1 หรือ localhost เป็น callback URL ได้...ดูฉันสิ

ความสามารถนี้เน้นย้ำถึงจุดอ่อนพื้นฐานในวิธีที่ระบบการยืนยันตัวตนหลายระบบตรวจสอบ redirect URLs โดยมุ่งเน้นเพียงชื่อโดเมนแทนที่จะเป็นการแปลง IP ที่แท้จริง

บันทึก DNS:

  • localhost.301party.com → 127.0.0.1
  • metadata.301party.com → 169.254.169.254
  • ipv6.metadata.301party.com → [::169.254.169.254]

ทางลัดที่อันตรายสู่ทรัพยากรที่ละเอียดอ่อน

สิ่งที่น่ากังวลที่สุดคือทางลัดที่กำหนดไว้ล่วงหน้าของบริการที่มุ่งเป้าไปยังทรัพยากรระบบที่ละเอียดอ่อน แพลตฟอร์มเสนอเส้นทางตรงไปยัง AWS metadata services ระบบไฟล์ในเครื่อง และที่อยู่เครือข่ายภายใน ทางลัดเหล่านี้รวมถึงการเข้าถึง AWS instance metadata service ที่ 169.254.169.254 ไฟล์ระบบในเครื่องเช่น /etc/passwd และช่วงเครือข่ายภายใน

ผู้เชี่ยวชาญด้านความปลอดภัยในชุมชนได้สังเกตว่าแม้เบราว์เซอร์สมัยใหม่จะบล็อก file:// redirects แต่ไลบรารี HTTP client ของ backend หลายตัวจะติดตามการเปลี่ยนเส้นทางเหล่านี้อย่างไร้เดียงสา สิ่งนี้สร้างช่องโหว่ด้านความปลอดภัยที่ร้ายแรงซึ่งแอปพลิเคชันที่ดึงและแสดงเนื้อหาตาม URLs ที่ผู้ใช้ให้มาอาจเปิดเผยข้อมูลภายในที่ละเอียดอ่อนโดยไม่ได้ตั้งใจ

AWS metadata service: ที่อยู่ IP พิเศษที่ใช้โดย Amazon Web Services เพื่อให้ข้อมูลอินสแตนซ์แก่เครื่องเสมือนที่กำลังทำงาน

ทางลัดที่กำหนดไว้ล่วงหน้า:

  • /metadata → บริการ metadata ของ AWS (169.254.169.254)
  • /metadata6 → บริการ metadata ของ AWS แบบ IPv6
  • /localhost → 127.0.0.1
  • /zeroes → 0.0.0.0
  • /passwd → file:///etc/passwd
  • /services → file:///etc/services
  • /environ → file:///self/proc/environ

ความแปลกทางเทคนิคและปัญหาการใช้งาน

การทดสอบของชุมชนได้เผยให้เห็นพฤติกรรมทางเทคนิคที่น่าสนใจหลายประการในบริการนี้ แพลตฟอร์มรองรับรหัสสถานะ HTTP ที่ไม่ได้มาตรฐานนอกเหนือจากการเปลี่ยนเส้นทาง 3xx ทั่วไป รวมถึงสถานะ 451 (Unavailable For Legal Reasons) และแม้แต่สถานะ 0 ซึ่งทำให้เกิด system panics ผู้ใช้ยังค้นพบว่าบริการสามารถสร้างห่วงโซ่การเปลี่ยนเส้นทางแบบเรียกซ้ำได้ แม้ว่าเบราว์เซอร์จะยอมแพ้ในที่สุดหลังจากติดตามการเปลี่ยนเส้นทางมากเกินไป

บริการนี้แสดงให้เห็นว่าฟังก์ชันการเปลี่ยนเส้นทางสามารถถูกใช้ในทางที่ผิดในรูปแบบที่ไม่คาดคิดได้อย่างไร โดยทำหน้าที่เป็นทั้งเครื่องมือทดสอบที่มีประโยชน์และตัวอย่างเตือนใจของความเสี่ยงด้านความปลอดภัยในเว็บแอปพลิเคชัน

รหัสสถานะ HTTP ที่พร้อมใช้งาน:

  • 301, 302, 303, 307, 308 (การเปลี่ยนเส้นทางมาตรฐาน)
  • 451 (ไม่สามารถใช้งานได้ด้วยเหตุผลทางกฎหมาย)
  • รองรับรหัสสถานะแบบกำหนดเอง
  • สถานะ 0 ทำให้เกิดระบบพัง

บทสรุป

แม้ว่า 301party.com จะมีวัตถุประสงค์การทดสอบที่ถูกต้องตามกฎหมาย แต่การมีอยู่ของมันเน้นย้ำถึงข้อพิจารณาด้านความปลอดภัยที่สำคัญสำหรับนักพัฒนาเว็บ บริการนี้แสดงให้เห็นอย่างมีประสิทธิภาพว่า open redirects สามารถถูกใช้เป็นอาวุธเพื่อข้ามการควบคุมการยืนยันตัวตนและเข้าถึงทรัพยากรที่ละเอียดอ่อนได้อย่างไร องค์กรควรตรวจสอบอย่างระมัดระวังไม่เพียงแต่โดเมนใน redirect URLs เท่านั้น แต่ยังต้องพิจารณาผลกระทบด้านความปลอดภัยของการติดตามการเปลี่ยนเส้นทางไปยังทรัพยากรภายในหรือที่ละเอียดอ่อนด้วย

อ้างอิง: 301party.com: the intentionally open redirect