SQL Injection

Đôi nét về SQL Injection (SQLi)?

SQLi là một lỗ hổng trên web mà attacker sẽ có thể tạo ra những query đến database của website đó. Lỗ hổng này sẽ làm những dữ liệu mà khó có thể xem được một cách bình thường trở nên bị leak.

Lỗ hổng này khá rộng. Nó có thể ảnh hưởng trực tiếp đến user data và cả web database nếu attack muốn (có thể thêm, xóa, sửa,...)

Nếu attacker có thể khai thác được SQLi thì có thể dẫn đến nhiều hệ lụy khôn lường. Ví dụ như dữ liệu bị lộ (tài khoản người dùng, thông tin cá nhân,...). Điều này trở nên hết sức phức tạp vì sẽ liên quan đến nhiều khía cạnh bảo mật trên môi trường Internet.

Các tác động của SQLi

Để dễ hình dung hơn, SQLi có thể khiến:

  • Làm lộ những dữ liệu mật
  • Phá vỡ logic thực thi của web app
  • Lộ những database khác (trong vùng khác vùng mà bị SQLi)
  • Lộ cấu trúc của web app
  • Và còn nhiều vấn đề khác mà attacker có thể sử dụng để khai thác web app của bạn

Labs - Danh sách các bài thực hành

1. Basic Attacks

Các kỹ thuật SQLi cơ bản

2. UNION Attacks

Các kỹ thuật SQLi UNION attack

3. Examining Database

Kỹ thuật kiểm tra và liệt kê database

4. Blind SQL Injection

Kỹ thuật Blind SQLi - Tấn công "mù"

Một số cách để nhận dạng lỗ hổng SQLi

  • Thử với ký tự ' để kiểm tra syntax error
  • Thử thay đổi cấu trúc syntax để xem phản hồi
  • Thử bằng toán tử boolean (OR 1=1, AND 1=2)
  • Trigger time delay để xác nhận blind SQLi
  • Sử dụng UNION SELECT để trích xuất dữ liệu

Tài nguyên tham khảo