Tổng Quan SQL Injection là một kĩ thuật cho phép những kẻ tấn công thi hành các câu lệnh truy vấn SQL bất hợp pháp bằng cách lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập t
Trang 1Môn: Mạng máy tính và bảo mật
GV: Trương Hoài Phan Nhóm: No.Mercy
SV: Nguyễn Minh Trung MSSV: K114061063
Đề tài: SQL injection
Trang 2SQL INJECTION
SQL Injection là gì?
Các dạng tấn công bằng SQL
Injection.
Cách phòng tránh SQL Injection.
Quy trình thực hiện.
Demo
Trang 3Tổng Quan
SQL Injection là một kĩ thuật cho phép những kẻ tấn công thi hành các câu lệnh truy vấn SQL bất hợp pháp bằng cách lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập từ các ứng dụng web
Cho phép kẻ tấn công có toàn quyền, hiệu chỉnh trên cơ sở dữ liệu của ứng dụng.
Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị CSDL như My SQL, SQL Server, Oracle, DB2, Sysbase
Trang 4Các dạng tấn công
Có bốn dạng thông thường bao gồm:
1. Vượt qua kiểm tra lúc đăng nhập
(authorization bypass).
2. Sử dụng câu lệnh SELECT.
3. Sử dụng câu lệnh INSERT.
4. Sử dụng các stored-procedures [2],
[3]
Trang 5Authorization bypass
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web
Trang 6Sử dụng câu lệnh
SELECT
Dạng tấn công này phức tạp hơn Để thực hiện được kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để
dò tìm các điểm yếu khởi đầu cho việc tấn công.
Trang 7Ví dụ
Khi ta nhập
http://www.victimtim.com/shopping/sh cts.asp?id
=153
and 1=convert(int,(select top 1 table_name from information_schema.tables)) sp_password
Sẽ được thông báo lỗi là:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the
nvarchar value 'ver_Faq' to a column of data
typeint /shopping/shopdisplayproducts.asp, line 93
Trang 8Sử dụng câu lệnh INSERT
phép người dùng đăng kí một tài khoản để tham gia
đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình
thống không kiểm tra tính hợp lệ của thông tin nhập vào
Trang 9gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa'
dạng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: ' Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe
Trang 10Cách phòng tránh
trị cơ sở dữ liệu
xâu người dùng nhập vào từ client
Trang 11Quy trình thực hiện
Tìm kiếm mục tiêu
Kiểm tra chỗ yếu của trang web
Xác định tên của các column trong table
Nhận output của câu query
Nhận dữ liệu qua ‘database using
ODBC error message‘.
Thu thập các dữ liệu quan trọng
Thay đổi dữ liệu (Update/Insert) của
CSDL