Computer >> คอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยของเครือข่าย

WordPress AMP Plugin Exploited:Code Injection Vulnerability

ปลั๊กอิน 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 ไม่ได้เปิดเผยปัญหาที่แน่นอนในปลั๊กอิน