การค้นพบ XSS บน Chess.com
- ระหว่างเล่นหมากรุกเป็นงานอดิเรกและลองเล่นกับเทคนิคต่าง ๆ ก็พบช่องโหว่ XSS บน Chess.com
- Chess.com เป็นเว็บไซต์หมากรุกออนไลน์ที่ใหญ่ที่สุดบนอินเทอร์เน็ต โดยมีสมาชิกมากกว่า 100 ล้านคน
ภาพรวม
- เริ่มใช้งาน Chess.com อย่างจริงจังมากขึ้นในช่วงต้นปี 2023
- ชวนเพื่อนให้สมัครเว็บไซต์ และเมื่อใช้ฟีเจอร์เพื่อนก็กลายเป็นเพื่อนกันได้ทันที
- จึงสงสัยว่าสามารถทำการเพิ่มเพื่อนอัตโนมัติได้หรือไม่ ในลักษณะคล้ายกับ MySpace worm
- สร้างบัญชีใหม่และเปิดแท็บ Network ในเครื่องมือนักพัฒนา จนพบ URL สำหรับการเพิ่มเพื่อนอัตโนมัติ
ช่วงกลางเกม
- ทดลองทำ XSS โดยใช้ TinyMCE rich text editor
- ใช้ Burp proxy เพื่อแทรกโค้ด HTML ลงไปตรง ๆ ในคำอธิบาย 'About'
- ตรวจสอบการตั้งค่า TinyMCE และสร้าง XSS payload โดยใช้พร็อพเพอร์ตีสไตล์
background-image - ทดสอบสัญลักษณ์หลายแบบเพื่อหาวิธีที่ทำให้ XSS ทำงานได้
- สุดท้ายพัฒนาวิธีที่สามารถดึง cookie และ JavaScript object ออกมาได้
เอนด์เกม
- พยายามทำให้ XSS ทำงานได้อย่างสมบูรณ์
- พบวิธีใหม่ที่ใช้แอตทริบิวต์
srcsetเพื่อให้ใช้ไวยากรณ์ JS ได้กว้างขึ้น - ใช้การเข้ารหัส Base64 เพื่อรัน XSS payload ได้โดยตรง
- TinyMCE editor ถูกใช้งานทั่วทั้งเว็บไซต์ จึงทำให้ผลกระทบมีวงกว้าง
การวิเคราะห์
- สาเหตุรากของช่องโหว่มาจากฟังก์ชันอัปโหลดภาพซ้ำ
- สามารถหลบเลี่ยงการตรวจสอบ image hosting ได้ด้วยการใส่ชื่อโดเมนของ Chess.com
- rich text editor อนุญาตองค์ประกอบ HTML ได้หลากหลาย จึงเหมาะกับการทำ XSS
- TinyMCE เป็นเวอร์ชันล่าสุด แต่ขาดการ sanitize กับ HTML ขั้นสุดท้าย
- Chess.com ควรทำการ sanitize กับ HTML ขั้นสุดท้ายที่จะแสดงให้ผู้ใช้เห็น
ความเห็นของ GN⁺:
- บล็อกโพสต์นี้อธิบายกระบวนการค้นพบและรายงานช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นได้บนแพลตฟอร์มออนไลน์ขนาดใหญ่อย่าง Chess.com ได้น่าสนใจ
- ช่องโหว่ XSS อาจเป็นภัยคุกคามร้ายแรงต่อความปลอดภัยของเว็บไซต์ และการค้นหาและแก้ไขช่องโหว่ลักษณะนี้มีความสำคัญอย่างยิ่งต่อการคุ้มครองข้อมูลส่วนตัวของผู้ใช้เว็บไซต์
- บทความนี้เน้นย้ำกับนักพัฒนาซอฟต์แวร์และผู้เชี่ยวชาญด้านความปลอดภัยถึงความสำคัญของการตระหนักรู้ถึงช่องโหว่ในองค์ประกอบของเว็บแอปพลิเคชัน เช่น rich text editor และการป้องกันช่องโหว่เหล่านี้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
การแนะนำตัวและข้อมูลพื้นหลังของผู้เขียนต้นฉบับ (OP)
ความเห็นเกี่ยวกับฟังก์ชันที่เกี่ยวข้องกับเวิร์ม MySpace
คำถามเชิงเทคนิคเกี่ยวกับช่องโหว่ XSS
ความเห็นเกี่ยวกับ rich text editor ของ chess.com
คำถามเกี่ยวกับคำย่อทางเทคนิค
คำถามเชิงเทคนิคเกี่ยวกับการรีไดเรกต์ของซับโดเมน
chess.com.foo.bar) สามารถเลี่ยงนโยบายแหล่งที่มาเดียว (same-origin policy) ได้อย่างไร.