Home / Security / Web Security / SQL injection và các con đường khai thác

SQL injection và các con đường khai thác

Chào các bạn. Trong chuyên mục này Thegioitinhoc.org cùng các bạn tìm hiểu và giải thích khái niệm SQL injection và các phương pháp khai thác phổ biến nhất. 

Giới thiệu

Theo Wikipedia: “Sql Injection (SQLi) là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp, Sql Injection có thể cho phép những kẻ tấn công thực hiện các thao tác, thêm, sửa, xóa… trên cơ sở dữ liệu của ứng dụng. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase…

Sql Injection là một trong những lỗ hổng bảo mật web nguy hiểm được nhiều hacker khai thác nhất. Ngoài việc chiếm quyền kiểm soát dữ liệu hacker còn cài backdoor vào server mà website đang chạy. Sau đó chiếm toàn bộ quyền hệ thống.


Phần 1: SQL Injection con đường khai thác qua user input

User input thực chất là các form nhập liệu như search, tìm kiếm thông tin trong 1 website nào cũng có. Web brower gửi thông tin đến server thông qua phương thức HTTP GET hoặc POST và thành tham số cho web truy cập đến database. Ví dụ khi bạn search từ “son ohui” website sẽ truy cập dữ liệu và tìm ra các bản ghi nội dung chứa từ khóa ” son ohui ” và trả về kết quả người dùng.

Ví dụ chi tiết khai thác thông qua user input

Ở đây mình truy cập vào website http://zixem.altervista.org/SQLi/level1.php?id=1

Truy cập vào website này bạn sẽ truy cập vào cơ sở dữ liệu và hiển thị 2 giá trị là Item ID và Price tương ứng với biến id=1. Xác định được lỗ hổng của giá trị đầu vào biến id vì thế ta có thể khai thác và thực hiện lệnh SQL, đơn giản ta thay đổi url để lấy version hệ quản trị sql và tên database.Thay đổi biến id thành như sau: id=1 union select @@version,database(),6 limit 1,1. Sau đó gửi request đến web server.

Oke, bạn có thể thấy phiên bản SQL là 5.1.71-communoty-log, tên database là my_zixem. Bạn có thể sử dụng nhiều câu truy vấn khác nhau đến chèn, thu thập thông tin hoặc phá hoại: xóa, sửa bảng dữ liệu, up shell lên server để khai thác sau này.

Cảm ơn các bạn đã đọc, chúc các bạn thành công!

5 (100%) 1 vote

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *