Tiểu luận môn An ninh mạng Tấn công kiểu SQL Injection – Tác hại và cách phòng tránh - Pdf 26

LOGO
Môn : Phản ứng tình huống tấn công mạng.
TRƯỜNG ĐẠI HỌC DUY TÂN
KHOA CÔNG NGHỆ THÔNG TIN
Nhóm 1 : Trần Trung Lý.
Nguyễn Đức Thắng.
Nguyễn Bá Mãi.
Trần Hoàng Ngọc Thiện.
Dương Nguyễn Thái.
Đề tài : TẤN CÔNG BẰNG KỸ THUẬT SQL INJECTION
.
Nội dung trình bày

Hiện trạng.

SQL Injection là gì ?

Các dạng tấn công bằng SQL Injection.

Kỹ thuật tấn công bằng SQL Injection.

Cách phòng tránh.

Demo
Hiện trạng

Năm 2006:Hãng bảo mật SecureWorks cho biết đã phát hiện tới 8.000 vụ tấn công lên các cơ sở dữ
liệu mỗi ngày. Con số thống kê của SecureWorks được thống kê từ hệ thống các cơ sở dữ liệu của hơn
1.300 khách hàng sử dụng các giải pháp dịch vụ bảo mật của hãng này.

4 – 2011: Sun.com và MySQL.com đã bị tấn công bởi kỹ thuật SQL injection,làm lộ ra database của

name="fPASSWORD"><br>
<input type="submit">
</form>
execlogin.asp
<%
Dim vUsrName, vPassword, objRS, strSQL
vUsrName = Request.Form("fUSRNAME")
vPassword = Request.Form("fPASSWORD")

strSQL = "SELECT * FROM T_USERS " & _
"WHERE USR_NAME=' " & vUsrName & _
" ' and USR_PASSWORD=' " & vPassword & " ' "

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN= "

If (objRS.EOF) Then
Response.Write "Invalid login."
Else
Response.Write "You are logged in as " & objRS("USR_NAME")
End If

Set objRS = Nothing
%>
1
Tấn công vượt qua form đăng nhập
Ví dụ, nếu người dùng nhập chuỗi sau vào trong cả 2 ô nhập liệu username/password của trang login.htm là:
' OR ' ' = ' '.
Lúc này, câu truy vấn sẽ được gọi thực hiện là:
SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and USR_PASSWORD= '' OR ''=''

3
Tấn công qua câu lệnh Having
Lệnh SELECT được dùng để lấy thông tin từ cơ sở dữ liệu. Thông thường vị trí có thể được chèn thêm vào một mệnh đề
SELECT là sau WHERE. Để có thể trả về nhiều dòng thông tin trong bảng, thay đổi điều kiện trong mệnh đề WHERE bằng
cách chèn thêm UNION SELECT.
Nhờ vào lỗi cú pháp trả về sau khi chèn thêm câu lệnh UNION mà có thể biết kiểu của mỗi trường.
Nhờ vào lỗi phát sinh tại mục 3 mà biết được bảng sử dụng trong câu truy vấn là users và trong bảng tồn tại một trường tên là
userName.
Ta tiếp tục sử dụng lênh Group By
Username: ‘group by users.userName having 1=1
4
Tấn công qua câu lệnh Union
Lỗi phát sinh:
[Microsoft][ODBC SQL Server Driver][SQL Server]
Column ‘users.userPass' is invalid in the select list because it is not contained in either an aggregate
function or the GROUP BY clause.
Như vậy userPass là một trường của bảng users và được sử dụng trong câu truy vấn.
Tiếp tục dùng GROUP BY cho đến khi biết được tất cả các trường trong bảng User tham gia vào câu truy vấn. Khi không còn
báo lỗi cú pháp GROUP BY nữa thì chuyển qua công đoạn kiểm tra kiểu của từng trường trong bảng. Lúc này UNION được
sử dụng:
Username:’union select sum(userName) from users
4
Tấn công qua câu lệnh Union
Lệnh sum là lệnh tính tổng cho đối số bên trong dấu ngoặc. Đối số phải là kiểu số. Nếu đối số không là kiểu số thì phát sinh lỗi
như sau:
[Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a varchar data type
as an argument.
Như vậy với thông điệp lỗi như trên thì tkUsername chắc chắn phải là kiểu “varchar”. Với phương pháp trên, dễ dàng xác
định được kiểu của từng trường trong bảng. Sau khi đã nhận đầy đủ trông tin trên thì hacker dễ dàng tự thêm thông tin vào
bảng User.


Bước 1: Tìm kiếm mục tiêu.

Bước 2: Kiểm tra chỗ yếu của trang web

Bước 3: Nhận data qua ‘database using ODBC error message’

Bước 4: Xác định tên của các column trong table

Bước 5: Thu thập các dữ liệu quan trọng.

Bước 6: Xử lý kết quả tìm được
Kỹ thuật tấn công SQL injetion
C
Cách phòng tránh
D
LOGO
Thanks !


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status