Bypass Authentication on ZyXEL ADSL Router (Updated: Mar,2014)

SEVERITY: HIGH
ZyXEL คือยี่ห้อเร้าเตอร์ ที่ผู้ให้บริการ Internet ความเร็วสูง (ADSL) หลายๆบริษัทเลือกใช้ เพื่อให้บริการลูกค้า ดังนั้น โดยส่วนมากแทบทุกบ้านที่ใช้บริการ Internet ความเร็วสูง (ADSL)  จะต้องใช้เร้าเตอร์ยี่ห้อ ZyXEL
Bypass authentication คือ เป็นการเข้าถึงไฟล์หรือโฟลเดอร์ ที่มีการกำหนดสิทธิ์ โดยอาศัยวิธีการต่างๆ แม้จะไม่มีสิทธิ์ในการเข้าถึง เช่น นาย ก เป็นเจ้าของตู้เซพ แต่นาย ข สามารถเข้าถึงตู้เซพนั้น  โดยอาศัยวิธีการต่างๆ โดยไม่ผ่านนาย ก ซึ่งเป็นเจ้าของตู้เซพ
Zyxel bypass authentication หมายถึง สามารถเข้าถึงไฟล์สำคัญๆ แม้ไม่ใช่ admin  ตัวอย่างเช่น  ผู้ที่ไม่มีพาส admin ก็สามารถเข้าถึงไฟล์ ที่เก็บ Username และ Password ของ Internet ของเราได้  (สามารถเอารหัส ของเราไปต่อเน็ตที่ไหนก็ได้)  และสามารถเข้าถึง ไฟล์ที่เป็นการตั้งค่า ของ WIFI เราได้ ดังนั้น ก็สามารถเห็น รหัสผ่าน WIFI เราได้ แม้จะตั้งค่าเป็น WPA2 แล้วก็ตาม

วิธีการทดสอบ

ทดสอบเข้าหน้า Web management ผ่านไอพีของ Router เช่น 192.168.1.1 ซึ่งเป็น Default IP ที่ทาง ผู้ให้บริการ Internet ความเร็วสูงตั้ง เมื่อเข้าผ่านหน้าเว็บระบบจะบังคับให้กรอก Password สำหรับ Login ถึงจะเข้าไปจัดการในระบบ ของเร้าเตอร์ได้

จากนั้น ผมได้พบไฟล์ ที่หน้าสนใจ เพราะเป็นไฟล์ที่เก็บค่า username และ password ของผู้ใช้งาน Internet ชื่อไฟล์คือ wzIspUserPwd_true.asp ซึ่งไฟล์นี้หาได้จากการ telnet เข้าไปที่เร้าเตอร์ จากนั้นก็ ดูรายชื่อไฟล์ ดังภาพ

จากการทดสอบเมื่อทราบว่ามีไฟล์นี้มีอยู่จริง และนำไฟล์นี้ไปวางแล้วคลิกผ่านหน้าเว็บปกติธรรมดา (http://192.168.1.1/cgi-bin/wzIspUserPwd_true.asp) จะไม่สามารถเข้าถึงไฟล์ดังกล่าวได้ เพราะเร้าเตอร์มีการตั้งค่าความปลอดภัย ต้องมีการยืนยันตัวตน ก่อนเสมอถึงจะสามารถเข้าถึงไฟล์ดังกล่าวได้

หลังจากนั้นได้ทำการแก้ไข ค่าให้มีการเรียกหน้าเว็บใหม่ เมื่อมีการใส่ค่า password โดยตัวอย่างดังภาพ
ซึ่งค่าปกติ ของเร้าเตอร์ที่มีการตั้งไว้ เมื่อมีการใส่ พาสเวิด แล้วคลิกปุ่ม Login จะมีการเรียกไปที่หน้าเพจ SavingAuthorize.asp นี้เสมอ จากการทดสอบ เมื่อแก้ไขค่าดังกล่าว จาก SavingAuthorize.asp เป็นค่า wzIspUserPwd_true.asp และ พาสเวิด ก็ใส่พาสมั่วๆ แล้วกดปุ่ม Login ปรากฏว่า สามารถเข้าถึงไฟล์ wzIspUserPwd_true.asp โดยไม่ต้องยืนยันตัวตนที่ถูกต้อง

ค่าที่แก้ไข ปกติคือ
<form action="/cgi-bin/SavingAuthorize.asp" method="post" name="authorizeform" form="">

แก้ไขค่าเป็น
<form action="/cgi-bin/ wzIspUserPwd_true.asp " method="post" name="authorizeform" form="">

- แล้วทดลองเข้าหน้า Login อีกครั้งพร้อมกรอก Password อะไรก็ได้ จะได้ผลลัพธ์ตามภาพซึ่งแสดงการถึงไฟล์ wzIspUserPwd_true.asp และเห็นรายละเอียด Username & Password

สามารถเข้าถึงไฟล์อื่น ยกตัวอย่างเช่นไฟล์ WLAN_General.asp ซึ่งเป็นไฟล์กำหนดการตั้งค่า WIFI ดังนั้น พาสเวิด แม้จะมีการตั้งยากแค่ไฟล์ เข้ารหัสแบบ WPA2 อย่างไรก็ตาม ก็สามารถเห็น พาสเวิด ได้ ดังภาพซึ่งแสดงรายละเอียดหน้า WLAN_General.asp และ Password WIFI

เบื้องต้นข้าพเจ้าทดสอบเพิ่มอีก WAN.asp , rpSysAdmin.asp ซึ่งสามารถใช้วิธีการเดียวกันเข้าถึงได้เลย

*** ข้อมูลเพิ่มเติมและวิธีป้องกัน Click ***