Là một trong những kiểu hack web, xâm nhập vào dữ liệu web cho dù thông tin đăng nhập không đúng với dữ liệu, dữ liệu lưu các user là admin với mật khẩu là 123, khach là 234 , nhưng người tấn công vào web không cần biết các thông tin user và mật khẩu.
Hacker tấn công sử dụng duyệt web bất kì, chẳng hạn như Internet Explorer, , chrome, firrfox ..
(1) Thay đổi lại giá trị tham số trên url, ví dụ web: sanpham?ma=1
thay đổi là giá trị của tham số mã.
(2) Thay đổi lại giá trị từ ô input nhập từ giao diện web.
-- Chưa bàn tới ASPX, chỉ bàn cách code ở sql thì bạn xem câu lệnh sau:
Trong tbUser và 2 bảng ghi
UserName Pass
admin 123
khach 456
Từ query truy vấn SQL:
Select * from tbUser where UserName='admin' and Password='123'
* Ta sẽ lấy được thông tin từ tbUser bảng ghi dòng 1.
Select* from tbUser ta sẽ toàn bộ bảng ghi trong tbUser
* Các hacker đã lợi dụng vào cú pháp sau:
Select* from tbUser where UserName='x' and Password='y' OR '1'='1'
Nếu câu lệnh SQL trên chạy thì ra toàn bộ bảng ghi
* Vì sao UserName='x' and Password ='y' không đúng trong CSDL nhưng lại ra hết bảng ghi.
Bởi vì thêm đoạn sql : OR '1'='1' ( sai OR đúng thì ra là ĐÚNG)
-- Tấn công kiểu SQL Injection
Tại page login có 2 text nhập liệu có tên txtUS và txtPass ta viết code aspx để sinh ra câu sql
Select* from tbUser where UserName='x' and Password='y' OR '1'='1'
x được thay thế giá trị từ txtUS, y được thay thế từ txtPass
Vậy giờ ta sử dụng cú pháp OR phía trên
-- nhập vào txtUS là 1 , txtPass nhập vào giá trị là 2' OR '1'='1
* Các cú pháp khác tấn công SQL Injection
Một số loại dữ liệu khác mà cũng nên thử submit để biết xem trang web có gặp lỗi hay không:
' or 1=1–
” or 1=1–
or 1=1–
‘ or ‘a’=’a
” or “a”=”a
‘) or (‘a’=’a
Trong ASP.NET có cách ngăn chặn Injection đơn giản là sử dụng các Parameters khi làm việc với object SqlCommand (hoặc OleDbCommand) chứ không sử dụng các câu lệnh SQL trực tiếp. Khi đó .NET sẽ tự động validate kiểu dữ liệu, nội dung dữ liệu trước khi thực hiện câu lệnh SQL.
Tấn công kiểu SQL Injection và cách phòng chống trong ASP.NET