TÌM HIỂU VỀ SQL INJECTION

17 367 0
TÌM HIỂU VỀ SQL INJECTION

Đ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

Thế nào là Sql Injection, tấn công Sql Injection là gì, các phương pháp tấn công Sql Injection phổ biến, các công cụ trong tấn công website bằng Sql Injection. Cách phát hiện trang web bị lỗi sql injection và cách khai thác.

TÌM HIỂU VỀ SQL INJECTION Lê Văn Thơng Đinh Thị Tố Nga Mục lục SQL Injection gì? Các dạng cơng Sql Injection Kỹ thuật cơng Sql Injection Phương pháp phòng chống SQL Injection Demo SQL Injection gì? SQL Injection gì? SQL Injection là kỹ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu đầu vào ứng dụng web thông báo lỗi hệ quản trị sở liệu trả để inject (tiêm vào) thi hành câu lệnh SQL bất hợp pháp 1 SQL Injection gì? Một số đặc trưng SQL InjectionSQL injection cho phép kẻ công thực thao tác, delete, insert, update, v.v sở liệu ứng dụng, chí server mà ứng dụng chạy  SQL injection thường biết đến một vật trung gian tấn cơng ứng dụng web có liệu quản lý hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase Các dạng công Sql Injection Dạng công vượt qua kiểm tra lúc đăng nhập Dạng công sử dụng câu lệnh SELECT Dạng công sử dụng câu lệnh INSERT Dạng công sử dụng stored-procedures 2.1 Dạng công vượt qua kiểm tra lúc đăng nhập  Với dạng công này, tin tặc dễ dàng vượt qua trang đăng nhập nhờ vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web  SELECT * FROM user WHERE username =‘$username‘ and password= ‘$password‘  Câu truy vấn hợp lệ trả tất ghi user đoạn mã xử lí người dùng đăng nhập bất hợp pháp người dùng đăng nhập hợp lệ 2.2 Dạng công sử dụng câu lệnh SELECT  Dạng công phức tạp Để thực kiểu công này, kẻ cơng phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dò tìm điểm yếu khởi đầu cho việc cơng  Ví dụ trang tin tức, viết có ID Thơng thường có trang nhận ID viết cần thị sau truy vấn nội dung viết  Câu SQL có dạng: Select * from BaiViet Where IDBaiViet=‘’;  Nếu cơng vào điểm yếu khai thác thông tin chèn vào tham số điều kiện, dùng từ khoá Union để thực hện lệnh Select khác… 2.3 Dạng công sử dụng câu lệnh INSERT  Thông thường ứng dụng web cho phép người dùng đăng kí tài khoản để tham gia Chức thiếu sau đăng kí thành cơng, người dùng xem hiệu chỉnh thơng tin SQL injection dùng hệ thống khơng kiểm tra tính hợp lệ thơng tin nhập vào  Ví dụ, câu lệnh INSERT có cú pháp dạng: INSERT INTO TableName VALUES(‘Value One’, ‘Value Two’, ‘Value Three’)  Nếu ta nhập vào trường thứ ví dụ như: ‘ + (SELECT TOP FieldName FROM TableName) + ‘ Lúc câu truy vấn là: INSERT INTO TableName VALUES(‘ ‘ + (SELECT TOP FieldName FROM TableName) + ‘ ‘, ‘abc’, ‘def’) Khi đó, lúc thực lệnh xem thông tin, xem bạn yêu cầu thực thêm lệnh là: SELECT TOP FieldName FROM TableName 2.4 Dạng công sử dụng storedprocedures  Việc công stored-procedures gây tác hại lớn ứng dụng thực thi với quyền quản trị hệ thống ‘sa’  Ví dụ, ta thay đoạn mã tiêm vào dạng: ‘; EXEC xp_cmdshell ‘cmdd.exe dir C: ‘  Lúc hệ thống thực lệnh liệt kê thư mục ổ đĩa C:\ cài đặt server Việc phá hoại kiểu tuỳ thuộc vào câu lệnh đằng sau cmd.exe 3 Kỹ thuật cơng SQL Injection Tìm kiếm mục tiêu Phát Xác định số lượng cột mệnh đề select Xác định thơng tin 3.1 Tìm kiếm mục tiêu • Sử dụng cơng cụ tìm kiếm để tìm kiếm mục tiêu phù hợp 3.2 Phát  Để phát ứng dụng web có dính lỗi SQL Injection hay không, ta thêm vào câu truy vấn meta character hệ quản trị sở liệu, chẳng hạn dấu nháy đơn, dấu nháy kép, dấu chấm phẩy ký tự comment ( , ##, /**/)… chờ xem ứng dụng web xứ lý câu truy vấn 3.3 Xác định số lượng cột mệnh đề select  Union từ khóa dùng để gộp kết nhiều mệnh đề select mệnh đề select đòi hỏi số lượng trường phải số lượng trường select mệnh đề select ban đầu Chúng ta sử dụng điều để xác định số lượng cột cở sở liệu  Cụ thể, thực thử dần cách tăng dần số lượng cột mệnh đề select sau union (bắt đầu từ 1) Khi không thấy thông báo lỗi xuất số lượng cột cần tìm  Một cách nhanh sử dụng 'order by' Từ khóa 'order by' dùng để xếp thứ tự cho ghi thu mệnh để select Sau order by tên cột để xác định kết thu xếp theo giá trị cột (tăng dần giảm dần) Sau 'order by' số thứ tự vị trí cột Nếu giá trị sau order lớn số cột select thấy thông báo lỗi 3.4 Xác định thông tin  Để biết tên bảng, tên cột, ta sử dụng đối tượng information_schema Đối tượng cung cấp thông tin tables, columns, views procedures… sở liệu 3.5 Xử lý thông tin thu  Có thể làm việc tác động đến CSDL trang web dựa vào độ quan trọng thông tin thu thập 4 Phương pháp phòng tránh  Tối ưu hố mã nguồn  Các thơng báo lỗi phải che dấu lỗi xác hệ thống  Quản lý chặt chẽ liệu đầu vào  Rewrite URL  Hạn chế cấp quyền mức cao cho người sử dụng Demo ...Mục lục SQL Injection gì? Các dạng cơng Sql Injection Kỹ thuật cơng Sql Injection Phương pháp phòng chống SQL Injection Demo SQL Injection gì? SQL Injection gì? SQL Injection là kỹ thuật... quản trị sở liệu trả để inject (tiêm vào) thi hành câu lệnh SQL bất hợp pháp 1 SQL Injection gì? Một số đặc trưng SQL Injection  SQL injection cho phép kẻ công thực thao tác, delete, insert,... dụng chạy  SQL injection thường biết đến một vật trung gian tấn cơng ứng dụng web có liệu quản lý hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase Các dạng công Sql Injection Dạng

Ngày đăng: 05/12/2017, 09:12

Từ khóa liên quan

Mục lục

  • Slide 1

  • Mục lục

  • 1. SQL Injection là gì?

  • 1. SQL Injection là gì?

  • 2. Các dạng tấn công Sql Injection

  • 2.1. Dạng tấn công vượt qua kiểm tra lúc đăng nhập

  • 2.2. Dạng tấn công sử dụng câu lệnh SELECT

  • 2.3. Dạng tấn công sử dụng câu lệnh INSERT

  • 2.4. Dạng tấn công sử dụng stored-procedures

  • 3. Kỹ thuật tấn công SQL Injection

  • 3.1. Tìm kiếm mục tiêu

  • 3.2. Phát hiện

  • 3.3. Xác định số lượng cột trong mệnh đề select

  • 3.4. Xác định thông tin

  • 3.5. Xử lý thông tin thu được

  • 4. Phương pháp phòng tránh

  • 5. Demo

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

  • Đang cập nhật ...

Tài liệu liên quan