Tìm hiểu về SQL Injection và cách phòng chống
SQL Injection không còn là khái niệm quá mới, nhưng nó vẫn là một trong
những kiểu tấn công mạng khá phổ biến. Bài viết này gồm 12 mục, đi từ khái
niệm, các bước diễn ra SQL Injection với một ví dụ minh họa (trang web được
dùng làm ví dụ chỉ là minh họa, không có thực) đến cách phòng chống tấn công
SQL Injection để bạn đọc hiểu về cách thức tấn công này, từ đó có những biện
pháp phòng ngừa, bảo vệ website và hệ thống của mình.
Lưu ý: Không thử tấn công website, hệ thống của cá nhân, tổ chức khác bằng
phương pháp này, mọi hành vi như vậy đều là vi phạm pháp luật Việt Nam. Nếu
bạn tìm thấy lỗ hổng bảo mật, hãy báo cho người quản trị website, hệ thống đó để
họ khắc phục. Bài viết chỉ nhằm mục đích giúp bạn hiểu về kiểu tấn công và có
những biện pháp phòng tránh cho ứng dụng web của mình.
Tìm hiểu về SQL Injection
1. SQL Injection là gì?
SQL Injection là một trong những kiểu hack web bằng cách inject các
mã SQLquery/command vào input trước khi chuyển cho ứng dụng web xử lí, bạn
có thể login mà không cần username và password, remote execution (thực thi từ
xa), dump data và lấy root của SQL server. Công cụ dùng để tấn công là một trình
duyệt web bất kì, chẳng hạn như Internet Explorer, Netscape, Lynx, ...
Bài labs SQL Injection
Bạn có thể hình dung toàn bộ quá trình tấn công bằng SQL Injection thông qua
một bài labs về SQL injection đơn giản dưới đây. Bài lab sẽ đưa ra ví dụ về một
ứng dụng có lỗ hổng để sử dụng SQL Injection, bạn chỉ cần làm theo các bước
trong hướng dẫn để tiến hành kiểu tấn công này.
Sau khi thực hiện bài labs, bạn đã có những hình dung cơ bản về SQL Injection,
nhưng nếu muốn hiểu rõ và chi tiết hơn, bạn hãy đọc những phân tích cụ thể tiếp
theo nhé.
2. Các bước tiến hành SQL Injection
2.1. Tìm kiếm mục tiêu
Có thể tìm các trang web cho phép submit dữ liệu ở bất kì một trình tìm kiếm nào
trên mạng, chẳng hạn như các trang login, search, feedback, ...
Ví dụ:
http://yoursite.com/index.asp?id=10