ปลั๊กอิน WordPress AMP ถูกเอารัดเอาเปรียบ
บทความนี้จะกล่าวถึงช่องโหว่การแทรกโค้ดในเวอร์ชันเก่า (เวอร์ชัน 0.9.97.20 และต่ำกว่า ) ของปลั๊กอิน WordPress AMP เราอธิบายว่า AMP คืออะไร และปลั๊กอิน WordPress AMP มีช่องโหว่ที่สามารถหาประโยชน์ได้อย่างไร
Accelerated Mobile Pages (AMPs) – A Brief Introduction
AMP เป็นเทคโนโลยีเว็บไซต์โครงการของ Google ซึ่งเดิมมีวัตถุประสงค์เพื่อเพิ่มประสิทธิภาพเว็บไซต์สำหรับผู้ใช้มือถืออย่างมาก ตามเว็บไซต์ของโครงการ AMP เป็นไลบรารีโอเพนซอร์ซที่ให้วิธีที่ง่ายกว่าในการสร้างหน้าเว็บที่โหลดสำหรับผู้ใช้เกือบจะในทันที หน้า AMP ทำงานเหมือนหน้าเว็บที่คุณลิงก์และควบคุมได้
หน้า AMP ประกอบด้วย 3 องค์ประกอบ:
- AMP HTML:HTML สำหรับหน้า AMP จะแตกต่างกันเล็กน้อยโดยมีข้อจำกัดบางประการ ดังนั้นฟีเจอร์ทั้งหมดจึงไม่จำเป็นต้องโหลดเมื่อเปิดเว็บไซต์
- AMP JS:องค์ประกอบหลักนี้มีหน้าที่ในการโหลดทรัพยากรทั้งหมดเมื่อเปิดไซต์ โดยทำให้เนื้อหาขาเข้าทั้งหมดไม่ตรงกัน เพื่อไม่ให้เนื้อหาใดในหน้าสามารถบล็อกเนื้อหาภายนอกไม่ให้แสดงผลได้
- แคช AMP:คอมโพเนนต์นี้เป็นเครือข่ายการส่งเนื้อหาที่ใช้พร็อกซีเพื่อส่งเอกสาร AMP ที่ถูกต้องทั้งหมด เอกสาร ไฟล์ JS และรูปภาพทั้งหมดโหลดจากต้นทางเดียวกันกับที่ใช้ HTTP 2.0 เพื่อให้มีประสิทธิภาพสูงสุด
ช่องโหว่การแทรกโค้ดใน AMP สำหรับ WP ปลั๊กอิน
ปลั๊กอินที่เป็นปัญหาคือ “AMP สำหรับ WP – Accelerated Mobile Pages ” ปลั๊กอินนี้ช่วยแสดงหน้าเว็บของเราในรูปแบบ Accelerated Mobile Pages เพื่อการโหลดที่รวดเร็วบนแพลตฟอร์มมือถือ ช่องโหว่พื้นฐานในปลั๊กอินเวอร์ชันเก่า (เวอร์ชัน 0.9.97.20 และต่ำกว่า ) คือ การตรวจสอบสิทธิ์ใช้งานไม่ได้และการจัดการเซสชัน .
พบว่าสิ่งเหล่านี้เกิดขึ้นเนื่องจากมีช่องโหว่ต่างๆ เช่น การแทรกไฟล์ การดาวน์โหลดไฟล์แบ็คดอร์ (รวมถึง wp-config.php
), ช่องโหว่ DDoS, การอัปเกรดฐานข้อมูล, การเขียนทับตัวเลือกและข้อมูลเมตาหลัง, การใช้ประโยชน์จากแบนด์วิธ (การดาวน์โหลดไลบรารีสื่อ WP แบบเต็ม) และการแทรกโพสต์ WordPress ที่ไม่มีการกรองซึ่งพบว่าใช้ประโยชน์จากช่องโหว่นี้ ช่องโหว่ในการแทรกโค้ดจะแทรกโค้ดที่เป็นอันตรายลงในเว็บไซต์โดยใช้วิธีการต่างๆ เช่น คุกกี้และสคริปต์ฝั่งเบราว์เซอร์ ซึ่งช่วยให้พวกเขาสามารถขโมยข้อมูลที่ละเอียดอ่อนหรือทำให้เกิดการละเมิดข้อมูลได้
เหตุใดจึงเกิดขึ้น
สิ่งนี้เกิดขึ้นเนื่องจากสินทรัพย์การจัดการเซสชันของเราไม่ได้รับการปกป้องอย่างเหมาะสม สิ่งนี้จะเกิดขึ้นหาก:
- ข้อมูลรับรองการตรวจสอบสิทธิ์ของผู้ใช้ไม่ได้รับการปกป้องเมื่อจัดเก็บโดยใช้การแฮชหรือการเข้ารหัส
- ข้อมูลประจำตัวสามารถคาดเดาหรือเขียนทับได้ผ่านฟังก์ชันการจัดการบัญชีที่ไม่รัดกุม (เช่น การสร้างบัญชี การเปลี่ยน/กู้คืนรหัสผ่าน และ ID เซสชันที่ไม่รัดกุม)
- รหัสเซสชันเปิดเผยใน URL (เช่น การเขียน URL ใหม่)
- Session ID เสี่ยงต่อการโจมตีจากการตรึงเซสชัน
- รหัสเซสชันหรือเซสชันผู้ใช้หรือโทเค็นการตรวจสอบสิทธิ์ โดยเฉพาะโทเค็นการลงชื่อเพียงครั้งเดียว (SSO) จะไม่ทำให้ใช้งานไม่ได้อย่างเหมาะสมในระหว่างการออกจากระบบ
- รหัสเซสชันจะไม่ถูกหมุนเวียนหลังจากเข้าสู่ระบบสำเร็จ
- รหัสผ่าน รหัสเซสชัน และข้อมูลประจำตัวอื่นๆ จะถูกส่งผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัส
ช่องโหว่นี้จัดอยู่ในประเภท CWE-287 ในรายการการแจงนับจุดอ่อนทั่วไป
ผลที่เป็นไปได้ของช่องโหว่นี้รวมถึงการเปิดเผยทรัพยากรหรือการทำงานที่มีความละเอียดอ่อนต่อผู้ใช้ที่ไม่ได้ตั้งใจ ดังนั้นผู้โจมตีจึงสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนและยังสามารถรันโค้ดตามอำเภอใจบนเว็บไซต์ของเราได้ นอกจากนี้ ช่องโหว่ของปลั๊กอินเฉพาะนี้ยังเป็นปัญหาสำคัญสำหรับเว็บไซต์ที่อนุญาตให้ผู้ใช้ลงทะเบียนได้
กลยุทธ์การบรรเทาผลกระทบ
กลยุทธ์การบรรเทาผลกระทบที่ง่ายที่สุดเพื่อความปลอดภัยจากช่องโหว่คือ:
- อัปเดตเป็นปลั๊กอิน WordPress AMP ล่าสุด (เผยแพร่หลังจากเวอร์ชัน 0.9.97.20 )
- ปิดการใช้งานปลั๊กอินปัจจุบันจนกว่าช่องโหว่จะได้รับการแก้ไข
สุดท้ายนี้ หากคุณต้องการให้เราตรวจสอบช่องโหว่ของไซต์ที่เปิดใช้งาน AMP โปรดแจ้งให้เราทราบโดยไปที่เว็บไซต์ของเรา
หมายเหตุ:ปลั๊กอินที่ได้รับผลกระทบเพิ่งถูกลบออกจากไลบรารีปลั๊กอิน WordPress ชั่วคราวเนื่องจากโค้ดที่มีช่องโหว่ แต่ทั้งผู้พัฒนาและทีม WordPress ไม่ได้เปิดเผยปัญหาที่แน่นอนในปลั๊กอิน