ปลั๊กอิน Coming Soon Page, Under Construction & Maintenance Mode by SeedProd สำหรับ WordPress เวอร์ชัน 5.1.0 และต่ำกว่า พบว่าเปราะบางต่อ Stored XSS ขณะที่ผมกำลังตรวจสอบปลั๊กอิน ปลั๊กอินเวอร์ชัน 5.1.2 ที่มีการทำความสะอาดข้อมูล (data sanitization) ดีขึ้น เผยแพร่เมื่อวันที่ 24 มิถุนายน 2020
CVE ID: CVE-2020-15038
สรุป
Coming Soon Page, Under Construction & Maintenance Mode by SeedProd เป็นปลั๊กอิน WordPress ยอดนิยมที่มีการติดตั้งใช้งานมากกว่า 1 ล้านครั้ง พบว่าเปราะบางต่อช่องโหว่ Cross-Site Scripting (XSS) แบบจัดเก็บ (Stored) XSS เป็นชนิดของช่องโหว่ที่ผู้โจมตีสามารถใช้ประโยชน์เพื่อดำเนินการอันตรายต่างๆ เช่น การขโมยคุกกี้เซสชันหรือข้อมูลเข้าสู่ระบบของเหยื่อ การดำเนินการตามชื่อเหยื่อ การบันทึกการกดแป้นพิมพ์ และอื่นๆ
ผลกระทบ
ในขณะที่มีหลายวิธีที่ผู้โจมตีสามารถดำเนินการอันตรายได้โดยใช้ช่องโหว่นี้ มาดู 2 วิธี:
- การเปลี่ยนเส้นทาง (Redirection):
หากผู้โจมตีใช้ช่องโหว่นี้ พวกเขาจะสามารถใช้ XSS payload เพื่อทำให้เกิดการเปลี่ยนเส้นทาง ทำให้ทุกครั้งที่นักพัฒนาเปิดโหมดบำรุงรักษา (maintenance mode) ผู้ใช้ที่เข้าชมไซต์จะถูกเปลี่ยนเส้นทางไปยังโดเมนภายใต้การควบคุมของผู้โจมตี ซึ่งอาจทำให้ดูเหมือนเว็บไซต์ต้นฉบับพอดี พร้อมฟอร์มล็อกอินสำหรับผู้ใช้ส่งข้อมูลประจำตัว หากผู้ใช้ส่งข้อมูลโดยไม่สังเกตว่าโดเมนเปลี่ยนไป บัญชีของพวกเขาจะถูกเจาะ - ฟิชชิง (Phishing):
เช่นเดียวกัน ผู้โจมตียังสามารถใช้ payload สร้างฟอร์มล็อกอินบนหน้า Coming Soon/Maintenance Mode เอง พยายามหลอกล่อผู้ใช้ที่ไม่รู้ตัวให้ป้อนข้อมูลประจำตัว
ช่องโหว่
ฟิลด์ Headline ภายใต้ส่วน Page Settings รวมถึงฟิลด์อื่นๆ ในการตั้งค่าปลั๊กอิน พบว่าเปราะบางต่อ Stored XSS ซึ่งจะถูกกระตุ้นเมื่อหน้า Coming Soon แสดง (ทั้งโหมด preview และ live)
POST /wp-admin/options.php HTTP/1.1 Host: localhost:10004 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: https://localhost:10004/wp-admin/admin.php?page=seed_csp4 Content-Type: application/x-www-form-urlencoded Content-Length: 636 Origin: https://localhost:10004 Connection: close Cookie: ... option_page=seed_csp4_settings_content&action=update&_wpnonce=faced0b8ff&_wp_http_referer=%2Fwp-admin%2Fadmin.php%3Fpage%3Dseed_csp4&seed_csp4_settings_content%5Bstatus%5D=1&seed_csp4_settings_content%5Blogo%5D=&seed_csp4_settings_content%5Bheadline%5D=%3Cscript%3Ealert%28%22Stored+XSS+in+Page+Headline%22%29%3C%2Fscript%3E&seed_csp4_settings_content%5Bdescription%5D=Proof+of+Concept&seed_csp4_settings_content%5Bfooter_credit%5D=0&submit=Save+All+Changes&seed_csp4_settings_content%5Bfavicon%5D=&seed_csp4_settings_content%5Bseo_title%5D=&seed_csp4_settings_content%5Bseo_description%5D=&seed_csp4_settings_content%5Bga_analytics%5D=
เส้นเวลา
รายงานช่องโหว่ให้ทีม SeedProd วันที่ 22 มิถุนายน 2020
เวอร์ชัน 5.1.2 ที่มีการแก้ไขช่องโหว่เผยแพร่เมื่อวันที่ 24 มิถุนายน 2020
คำแนะนำ
ขอแนะนำให้อัปเดตปลั๊กอินเป็นเวอร์ชันล่าสุดอย่างยิ่ง
อ้างอิง
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15038
- https://nvd.nist.gov/vuln/detail/CVE-2020-15038
- https://wordpress.org/plugins/coming-soon/#developers
- https://wpvulndb.com/vulnerabilities/10283
สำหรับแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย คุณสามารถทำตามคู่มือด้านล่าง:
- คู่มือความปลอดภัย WordPress
- คู่มือการแฮกและกำจัดมัลแวร์ WordPress