บทนำ (Overview)
“Jack” คือเครื่องมือที่ช่วยแสดงให้เห็นถึงการทำ ClickJacking โดยเขียนมาจาก “HTML” และ “JavaScript” จึงสามารถดาวน์โหลดและเรียกใช้งานผ่านเว็บบราเซอร์ได้ทันที
ส่วน “ClickJacking” เป็นการโจมตีโดยหลอกให้เรา Click ปุ่มต่าง ๆ เช่น ปุ่มค้นหา ปุ่ม “login” หรือลิงค์ต่าง ๆ บนหน้าเว็บเพจแต่ link เหล่านี้ถูกครอบโดย “Script” ของ “Hacker” กล่าวคือมีการซ่อน “Script” ที่มองไม่เห็นเมื่อคลิกลิงค์ แทนที่ลิงค์จะไปตามที่กำหนดกลับไปเป็นของ “Hacker”
ต่ำกว่า 18 ห้ามคลิก!! (ClickJacking) ซึ่งช่องโหว่ที่นำไปสู่การโจมตีที่เรียกว่า “ClickJacking” นั้น เกิดจากเว็บไซต์อนุญาตให้ใช้ HTML Syntax “<iframe></iframe>” จาก “Domain” อื่นที่ไม่ใช่ “Domain” จากเว็บไซต์เรา ดังนั้นเมื่อ “Hacker” เรียกหน้าเว็บไซต์เราโดยใช้ “<iframe>” เขาจึงเขียน “HTML Syntax” หรือ “JavaScript” จากนั้นจะนำไปทำ “Social Engineering” เช่น Phishing โดยใช้ email หรือโพสต์ตามเว็บบอร์ด เป็นต้น
ขั้นตอน (Steps)
- ดาวน์โหลด “Jack” จาก https://github.com/sensepost/Jack
- จากนั้นแตกไฟล์ “zip” และลองเปิดไฟล์ “index.html” ที่อยู่ใน “\jack-master\jack-master\static” โดยใช้ “Internet Explorer” หรือ “FireFox” ก็ได้
- จากนั้นลองตรวจสอบว่าหน้าเว็บเพจ มีรูปแบบตามภาพหรือไม่ ถ้าใช่แสดงว่า “Path” ของ “CSS” และ “JavaScript” นั้นถูกต้อง
- แต่ถ้าไม่เกิดเป็นรูปแบบดังภาพ ให้ไปแก้ไข “path” ไฟล์ใน “\jack-master\jack-master\static\” เป็น
../resources/
ดังรูปข้างล่าง
ไฟล์ index.html<head> <meta charset="UTF-8"> <title>SensePost</title> <link rel="shortcut icon" type="image/x-icon" href="../resources/img/logo.ico"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Bootstrap --> <link href="../resources/css/bootstrap.css" rel="stylesheet" media="screen"> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script type="text/javascript" src="../resources/js/jquery-1.11.0.js"></script> <script type="text/javascript" src="../resources/js/bootstrap.min.js"></script> </head>
ไฟล์ “sandbox.html”
<script type="text/javascript" src="../resources/js/jquery-1.11.0.js"></script> <link rel="shortcut icon" type="image/x-icon" href="../resources/img/logo.ico">
- ทดสอบโดยเอา “URL” ของเว็บไซต์ที่ต้องการแสดงการทำ “ClickJacking” ใส่ในช่อง “URL” แล้วคลิกปุ่ม “Load” ถ้าโหลดไม่ขึ้น หรือมีข้อความผิดพลาดต่าง ๆ เป็นไปได้ว่าเว็บไซต์ป้องกันมิให้ใช้ “<iframe>” syntax
- เราสามารถตั้งค่า “URL” ของเว็บไซต์ที่ต้องการทดสอบ ให้สามารถโหลด เพื่อใช้ในการทดสอบได้ทันทีโดยไม่จำเป็น ต้องมากรอกที่ช่อง “URL” อีก โดยแก้ไขที่ “index.html” ตามข้าง
var defaultReadTarget = "https://domain.com/";
- เมื่อเราปรับแต่งค่า “textbox” ปุ่ม และ “css” และ “script” เรียบร้อยแล้ว จากนั้นเราก็มาคลิกปุ่ม “View” เพื่อแสดงให้เห็นถึง “link” เพื่อทำ “ClickJacking”
- เราสามารถปรับแต่งโดย “textbox” และ “ปุ่ม” โดยใช้ “css” ตัวอย่างเช่น
width: 300px; /*ปรับความกว้าง*/ height: 25px; /*ปรับความสูง*/ opacity:0.4; /*ทำให้โปร่งใสเพื่อให้ผู้ใช้งานมองไม่เห็น และหน้าเว็บเพจยังคงเดิม*/ background-color:#fffffcc; /*ทำสีพื่น*/ font-family: sans-serif; /*ปรับประเภทตัวอักษร*/ font-size: 14pt; /*ปรับขนาดตัวอักษร*/
- ถ้าไม่สามารถคลิกปุ่ม “View” ได้ ให้ทำการแก้ไขโดยการตรวจสอบ “Path” ที่ “Web server” ตัวอย่างเช่น “http://localhost/jack-master/static/” กับ “Path” ที่มีอยู่จริงตรงกันหรือไม่ ้เช่น “c://jack-master/static/” ถ้าไม่ ให้ไปปรับแก้ที่ไฟล์ “\jack-master\jack-master\static\index.html” จากตัวอย่างได้เพิ่ม “/jack-master/” เข้าไป
var demoUrl = "/jack-master/jack-master/static/sandbox.html?target=" + target + '&userNameLeft=' + emailX + '&userNameTop=' + emailY + '&passwordLeft=' + passwordX + '&passwordTop=' + passwordY + '&buttonLeft=' + buttonX + '&buttonTop=' + buttonY;
- เมื่อคลิก “View” จะพบว่าเว็บบราวเซอร์จะเปิดหน้าใหม่ และหน้าใหม่จะปรากฏหน้าเว็บเพจที่เป็นช่องโหว่ “ClickJacking” ซึ่งจะถูกครอบด้วย “Textbox” และ ปุ่มที่สร้างขึ้นมาใหม่ (โปร่งใส) จากตัวอย่างเราให้ความโปร่งใส 40 % เพื่อทำให้เห็นถึงการครอบ ดังรูป
ตัวอย่างการครอบด้วย Textbox กับปุ่มของ Hacker ที่ทำเป็นใสๆ ประมาณ 40% (opacity) - เราสามารถ “Copy” ของ “URL” ไปใช้งานได้ จากตัวอย่างทดลอง “login” พบว่า “username” และ “password” แทนที่จะถูกส่งไปที่ “server” กลับถูกดักโดย “Script” ของ “Hacker” ซึ่ง “Hacker” สามารถแก้ไข “Script” เพื่อส่งข้อมูลไปยัง “Server” ของ “Hacker” ได้อย่างง่ายดาย