
SQL INJECTION
BẢO MẬT ỨNG DỤNG WEB
Nguyễn Hữu Thể

SQL Injection
Hình thức tấn công vào câu lệnh SQL.
attacker chèn câu lệnh vào SQL của chương trình
•=> khai thác dữ liệu.
Khai thác lỗi: các ứng dụng web với backend:
•Không sử dụng data object
•Dùng kết nối query thuần
•Các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về
2

SQL Injection
❖Các dạng lỗi thường gặp:
Không kiểm tra ký tự thoát truy vấn
Xử lý không đúng kiểu
Lỗi bảo mật bên trong máy chủ cơ sở dữ liệu
Blind SQL Injection
3

Các dạng tấn công SQL injection
Dạng tấn công vượt qua kiểm tra đăng nhập
Dạng tấn công sử dụng câu lệnh SELECT
Dạng tấn công sử dụng câu lệnh INSERT
Dạng tấn công sử dụng stored-procedures
4

Dạng tấn công vượt qua kiểm tra đăng nhập
(authorization bypass)
Đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL.
Ví dụ: table users như sau:
5
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(100) NULL,
password VARCHAR(50) NULL,
PRIMARY KEY (id)
);
INSERT INTO users (username, password) VALUES ('aaa', '123456');
INSERT INTO users (username, password) VALUES ('bbb', '123456');