HostingViet | Công ty Cổ phần Công nghệ số Thiên Quang

SQL injection là gì? Các dạng tấn công SQL Injection

Tin tức | 2024-10-16 17:24:18+07

SQL injection là gì?

SQL injection là một kỹ thuật cho phép kẻ tấn công lợi dụng lỗ hổng về câu truy vấn của những ứng dụng để chèn thêm một đoạn SQL vào câu truy vấn của ứng dụng, làm sai lệnh câu truy vấn ban đầu, nhờ đó chúng có thể khai thác dữ liệu từ database của bạn.

SQL injection cho phép kẻ tấn công thực hiện các thao tác như delete, insert, update,... như người quản trị web, trên cơ sở dữ liệu của ứng dụng.

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

Có nhiều dạng SQL injection khác nhau, dưới đây là các dạng tấn công SQL injection mà bạn cần biết:

1. In-band SQLi (SQL Injection trực tiếp)

Loại tấn công này là phổ biến nhất, nó dễ dàng khai thác lỗ hổng SQL injection nhất. Hacker chỉ cần dùng 1 kênh liên lạc để có thể khởi động cuộc tấn công và bắt đầu thu thập dữ liệu của bạn.

Loại tấn công này có 2 biến thể phụ là: Error-based SQLi và Union-based SQLi.

Error-based SQLi

Đây là một kỹ thuật mà kẻ tấn công sẽ thực hiện hành động để cơ sở dữ liệu trả về thông báo lỗi, lợi dụng lúc đó, chúng tấn công dựa vào thông báo lỗi được trả về từ phía Database Server có chứa các thông tin về cấu trúc của cơ sở dữ liệu.

Union-based SQLi

Các hacker lợi dụng toán tử UNION SQL kết hợp nhiều câu lệnh được tạo ra bởi cơ sở dữ liệu để thu được một HTTP response - nơi chứa các dữ liệu mà hacker nhắm tới.

Inferential SQLi (Blind SQLi)

Nó được gọi là tấn công blind SQLi bởi hacker sẽ không thể thấy trực tiếp cách mà cuộc tấn công diễn ra. Theo đó, kẻ tấn công sẽ gửi các data payload tới server, rồi dựa vào phản ứng và hành vi của server để tìm hiểu về cấu trúc của nó. Loại tấn công này có 2 loại biến thể như sau:

Blind-boolean-based

Hacker gửi một câu truy vấn SQL tới server, khi đó, ứng dụng buộc phải trả kết quả để trả lời truy vấn, dựa vào kết quả, đáp án mà thông tin HTTP response sẽ được chỉnh sửa cho tới khi đúng với thực tế, khi đó, hacker sẽ nắm bắt được các thông tin xung quanh cấu trúc của server.

Time-based Blind SQLi

Loại tấn công này giống với boolean nhưng khác ở chỗ là hacker sẽ dùng các câu lệnh SQL để làm server của bạn ngừng hoạt động trong vài giây, căn cứ vào thời gian phản hồi mà hacker sẽ tra được kết quả truy vấn.

Out-of-band SQLi

Đây là cách tấn công khác mà hacker sử dụng khi server mục tiêu hoạt động không ổn định và quá chậm. Cách tấn công này sẽ đòi hỏi các tính năng nhất định được kích hoạt trên server cơ sở dữ liệu, hacker sẽ tận dụng lúc server tạo ra HTTP request hoặc DNS để có thể thu thập dữ liệu cần.

Sự nguy hiểm của SQL Injection

SQL Injection sẽ cực kỳ nguy hiểm vì:

Các phần dễ bị tấn công SQL Injection

Các phần dễ bị tấn công bao gồm:

Cách phòng chống tấn công SQL Injection (SQL injection how to prevent)

Để phòng tránh tấn công SQL injection, bạn hãy thường xuyên kiểm tra kỹ lưỡng các trường nhập dữ liệu người dùng nhập vào. 

Sẽ có các biện pháp sau để bạn có thể phòng chống tấn công này:

Vậy là trên đây HostingViet đã giải đáp cho bạn “SQL injection là gì?” và các thông tin xoay quanh loại tấn công web này. Hy vọng qua bài viết này bạn sẽ hiểu và biết cách phòng tránh SQL injection.


Bài viết khác