พบช่องโหว่ที่ทำให้ Hacker สามารถข้ามขั้นตอน reCAPTCHA ด้วย HTTP Parameter Pollution

ที่มาภาพ: developers.google.com

ช่องโหว่นี้ถูกค้นพบโดย Andres Riancho ซึ่งเป็นผู้เชี่ยวชาญด้านความปลอดภัยของระบบ Cloud โดย Hacker จะใช้ประโยชน์จากช่องโหว่นี้ได้ก็ต่อเมื่อ เว็บแอปพลิเคชั่นส่งคำร้องไปยัง /recaptcha/api/siteverify (Google reCAPTCHA) ในลักษณะที่ไม่ปลอดภัย Hacker ก็จะใช้ประโยชน์ช่องโหว่นี้ข้ามผ่านกระบวนการป้องกันได้ทุกครั้ง

สำหรับขั้นตอนการทำงานของช่องโหว่นี้ คือ เมื่อเว็บมีการใช้งานแอปพลิเคชั่น reCAPTCHA Google จะส่งชุดรูปภาพ และใช้รหัส JavaScript ในการแสดงผลบนบราวเซอร์
และเมื่อผู้ใช้กดปุ่มเพื่อยืนยันแล้ว มันจะส่งค่า {reCAPTCHA-generated-hash} ไปยยัง API เพื่อทำการตรวจสอบคำตอบ หากผู้ใช้ตอบได้ถูกต้อง API จะส่ง “OK” ไปยังแอปพลิเคชั่นที่ทำหน้าที่ประมวลผล และให้สิทธิ์ผู้ใช้เพื่อเข้าถึงหน้าเว็บตามที่ร้องขอมา

Riancho ยังกล่าาวว่า HTTP Parameter Pollution ที่ในเว็บนั้นสามารถข้ามผ่าน reCAPTCHA ซึ่งช่องโหว่ HTTP Parameter Pollution มีความเสี่ยงทั้งในฝั่ง Client และ Server ทำให้อาจเกิดการขโมยข้อมูลขนากใหญ่ได้ แต่ส่วนใหญ่ที่พบมักจะเป็นกรณที่อยู่ในความเสี่ยงต่ำ

นอกจากนี้ Riancho ยังพบว่า อาจเกิดการส่งคำขอ HTTP 2 ครั้ง โดยจะส่งไปยังบริการของ Google และรับผลตอบกลับแบบเดียวกับที่ส่งไปให้ Google
ซึ่ง API ของ reCAPTCHA มันจะใช้พารามิเตอร์ลับตัวแรก แต่จะไม่สนใจพารามิเตอร์ตัวที่สอง จุดนี้เองจึงเป็นเหตุให้นักวิจัยค้นพบช่องโหว่ ซึ่งนักวิจัยได้ตั้งข้อสังเกตว่า
ถ้าตัวแอปพลิเคชั่นนั่นเกิดช่องโหว่ HTTP Parameter Pollution และ URL ที่ถูกสร้างขึ้นมา โดยรวมการตอบสนองของพารามิตเรอ์ก่อนที่จะใช้พารามิเตอร์ลับ ทำให้ Hacker สามารถข้ามผ่านการตรวจสอบสิทธิ์ reCAPTCHA ได้

ปัญหาช่องโหว่นี้ทางได้ถูกรายงานไปยัง Google เมื่อวันที่ 29 มกราคมที่ผ่านมา และได้มีการออกแพทช์เมื่อวันที่ 25 มีนาคม
โดยแพทช์ที่ออกมานั้นทาง Google ได้ให้ REST API ส่งค่า error กลับไป เมื่อพบว่า HTTP ส่งคำร้องมายัง /recaptcha/api/siteverify ด้วยชื่อพารามิเตอร์ซ้ำกัน 2 ชื่อ

งานนี้นักวิจัยได้ค่าตอบแทนจาก Google ไปประมาณ 500 เหรียญสหรัฐ

ที่มา Security Week