• January 10, 2018

    noopener ใช้ป้องกันการโจมตีฟิชชิ่งด้วยการแอบ redirect ไปหาลิงค์อื่นที่ฝังโค้ดดักข้อมูลในระหว่างเว็บ บราวเซอร์เปิดลิงค์ใหม่ที่ใช้แท็ก target=”_blank”
    ทำโดยเรียกฟังก์ชั่น window.opener.location.assign() เทคนิคนี้ใช้หลอกล่อโดยใช้ชื่อเหมือนกับหน้าลิงค์ก่อนหน้า

    เช่น
    (ลิงค์จริง) กำลังเปิดลิงค์ ABCorp.com/login/1234 (ใช้ target=”_blank”) ระหว่างเปิดโดนโจมตี
    ทำให้มัน redirect ไปที่ (ลิงค์ปลอม) ABCorp.co/login/4567 แทน (ฝังโค้ด เช่น ดัก user/pass) โดยใช้ window.opener

    จะเห็นว่า URL มีชื่อ ABCorp เหมือนกัน บางครั้งก็มีการซ่อนบาร์ URL หรือโชว์แค่โดเมน ABCorp.co บางคนจะพลาดตรงนี้

    เรียกแทคนิคการโจมตีนี้ว่า Tabnabbing

    ถ้าแทรก rel=”noopener” มันก็จะไปปิดไม่ให้ใช้ window.opener ป้องกันเว็บบราวเซอร์ redirect ไปหาแท็บอันตรายนั้นได้ครับ

    http://www.thaiseoboard.com/index.php?topic=397080.0

    ช่องโหว่ เพียงแค่ใส่ target=“_blank”

    คนที่เขียนเว็บ ปกติเวลาที่เราจะใส่ลิงค์ไปยังหน้าอื่นๆ เราจะใช้แบบนี้
    Open link
    และถ้าอยากให้เปิดแท็ปใหม่ ก็เพียงใส่ target=”_blank” ลงไปแบบนี้
    Open new link

    เราสามารถเปลี่ยน url ต้นทางได้ โดยมีเงื่อนไขว่า url ต้นทาง ใส่ target=”_blank” แต่ไม่ได้ใส่ rel=”noopener” ตัว link url ให้ที่กดเปิด สามารถเปลี่ยน url ต้นทางได้ง่ายๆเลยแบบนี้
    if (window.opener) {
    window.opener.location = "http://devahoy.com/";
    }

    ซึ่งแทบทุกเว็บไซต์ยังไม่ได้แก้ไขช่องโหว่นี้เลย ซึ่งสามารถทหให้มันเปิดแท็ปใหม่ พร้อมกับให้แท็ปนเดิม redirect ไปเว็บอื่นได้

    ตัวอย่าง

    ถ้าเรากด Link มันจะเปิด tab ใหม่ขึ้นมา
    แต่ถ้ามี Javascript นี้ในเว็บนั้นมันจะเปลี่ยนเว็บให้เป็นตามสั่ง ซึ่ง Javascript นั้น คือ
    if (window.opener) {
    window.opener.location = “https://shayennn.com/online-radio/”;
    }

    วิธีแก้ ก็เพียงแค่ ใส่ rel=”noopener” เข้าไป


    ตอนนี้มีช่องโหว่เว็บแบบใหม่ ที่มีความรุนแรงค่อนข้างต่ำ แต่น่าสนใจ เพราะ เว็บดัง ๆ หลายที่ยังไม่ได้แก้ไขในจุดนี้ครับ มาลองดูกัน ขอเรียกว่าช่องโหว่ _blank ละกัน
    1. ปัญหานี้เกิดจากถ้าเราเขียนเว็บขึ้นมาแล้วใช้ attribute ของ link (href) ว่า target=”_blank” (ไว้ให้คลิก link แล้วเปิดเว็บใน tab ใหม่ของ browser) แต่ ไม่ได้ใช้ rel=”noopener” ควบคู่กันไปด้วย กับ link ของ URL ที่ยอมให้ user ใส่เข้ามาเองได้
    2. ผลกระทบคือ ถ้าแฮกเกอร์ใส่ลิ้งไปในเว็บแบบที่ (1) แล้วมีคนคลิกลิ้งนี้ไปเปิดหน้าเว็บใน tab ใหม่ เว็บใน tab ใหม่นั้นสามารถแอบ “เปลี่ยน” หน้าเว็บใน tab เก่าไปเป็นเว็บอื่นแทนได้ (แต่ URL ก็เปลี่ยนด้วยนะ)
    3. ตัวอย่างการโจมตีเช่น เราเข้าเว็บ facebook อยู่คลิกลิ้งแฮกเกอร์ ปุ๊บเปิด tab ใหม่เข้ามา อ่าน ๆ เสร็จกลับมาดู tab เก่าที่เคยเป็น facebook ปรากฏว่ากลายเป็นหน้าเว็บปลอม ให้ login ของ facebook แทน ซึ่งการที่สามารถทำแบบนี้ได้เป็นความสามารถของ javascript/DOM เองแก้ได้โดยการใช้ rel=”noopener” ใน href ครับ

    หน้าตาโค้ด javascript ที่ใช้ทำในเว็บแฮกเกอร์ ง่ายมากครับคือการแก้ไขค่า window.opener.location จะสามารถ redirect หน้าเว็บใน tab เก่าของ browser ได้
    if (window.opener) {
    window.opener.location = “https://phishing”;
    }
    ตอนนี้เฟสบุ๊กกับทวิตเตอร์ยังไม่ได้แก้ไขปัญหานี้
    ที่มา: https://dev.to/ben/the-targetblank-vulnerability-by-example
    https://web.facebook.com/longhackz/posts/1729338507320929:0?_rdc=1&_rdr



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories