I- SQL Injection là gì ?
SQL injection 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, delete, insert, update,… trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy, 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 (SQLI) được coi là một trong số 10 lỗ hổng ứng dụng web hàng đầu
theo OWASP (Open Web Application Security Project) đánh giá với mức độ nguy hiểm cực kỳ cao và phương thức khai thác thì đơn giản.
II- 10 Bước "cần" và "phải" biết:
1.Identifying injectable parameters: Xác định tham số có thể chèn khai thác lỗi SQL Injection .
Ví dụ như qua: URL, HTTP Header, Cookie, Forms (HTTP body).
2.Performing database finger-printing: xác định loại và phiên bản của database để đưa ra hướng tấn công thích hợp (MySQL – MSSQL – MSAccess – Oracle - PostgreSQL….).
Ví dụ:
MySQL Error Style:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1
Server Error in '/' Application
Fatal error: Uncaught exception 'com_exception' with message Source: Microsoft JET Database Engine
Microsoft JET Database Engine error '80040e14'
ORA-00933: SQL command not properly ended
MS SQL Server: Error:
Microsoft SQL Native Client error %u201880040e14%u2019
Unclosed quotation mark after the character string
3.Determining database schema: Để trích xuất dữ liệu trong 1 cơ sở dữ liệu database, kẻ tấn công cần biết thông tin về "database schema" (giản đồ CSDL) như table_name, column_name, kiểu dữ liệu...
4.Extracting data: Trích xuất dữ liệu từ CSDL như user|password để đăng nhập vào CMS của server.
5.Adding or modifying data: thay đổi, chỉnh sửa thông tin trong Database | Xem hình dưới:
6.Performing denial of service: Kiểu tấn công từ chối các dịch vụ , đóng kết nối Database của ứng dụng Web .
7.Evading detection: dùng những “cheat” để không bị phát hiện (detection) cững như bị ghi lại hoạt động (auditing)
8.Bypassing authentication: vượt quyền để có thể toàn quyền trên server.
9.Executing remote commands: SQL-Injection có thể thực thi command của OS.(load_file)
Ví dụ: LINUX OS BASE: ls | cat /etc/passwd | useradd | … — WINDOWS OS BASE: net user | dir c:\ | query session | …
10.Performing privilege escalation: Xác định quyền tối cao của current-user thông qua những lỗi mà server trả về.
III- Kiểu tấn công SQL Injection:
0 comments:
Post a Comment