SQL Injection

Giới thiệu SQL Injection là một kiểu hack phổ biến hiện nay, lợi dụng lổ hổng của việc kiểm tra dữ liệu đầu vào của các trang web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để “tiêm vào” và thực thi các câu lệnh SQL bất hợp

Giới thiệu

SQL Injection là một kiểu hack phổ biến hiện nay, lợi dụng lổ hổng của việc kiểm tra dữ liệu đầu vào của các trang web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để “tiêm vào” và thực thi các câu lệnh SQL bất hợp pháp. SQL Injection có thể cho phép hacker thao tác, thêm, sửa, xóa… trên cơ sở dữ liệu, không chỉ thế hacker còn có thể cài đặt backdoor trên server mà ứng dụng đang chạy => qua đó có thể kiểm soát cả hệ thống.

Hướng khai thác

Những đoạn script SQL có thể được “tiêm” vào câu query thông qua nhiều cách khác nhau như:

Thông qua “user input”

Điển hình là những form nhập data, form search hay link,… những dữ liệu này được web browser gửi đến server thông qua phương thức HTTP GET, POST
VD: Form search ở dưới, khi nhập vào “SQL Injection” thì ứng dụng web sẽ truy cập vào CSDL tìm và trả ra các record khớp với từ khóa.

VD: ứng dụng web sẽ tìm user với id = 7

Thông qua cookies

Cookies là những tệp tin lưu trữ thông tin trạng thái của người dùng khi truy cập các ứng dụng web. Những thông tin này do người lập trình quyết định, được tạo ra ở server và lưu trữ tại client. Khi người dùng truy cập lại ứng dụng web, cookies được browser gửi lên server giúp phục hồi lại những trạng thái của người dùng trong lần truy cập trước đó.

Do được lưu trữ ở client nên người dùng có thể chỉnh sửa tùy ý, vì vậy nếu ứng dụng web sử dụng những thông tin lưu trong cookies để xây dựng các truy vấn tới cơ sở dữ liệu thì hacker hoàn toàn có thể chèn vào cookies những Script SQL để thực hiện một cuộc tấn công SQL Injection.

HACKSPLAINING

Đây là 1 trang web khá là thú vị có khá là nhiều bài học về bảo mật ứng dụng, mỗi bài học ở đây gồm 3 phần: Exercise, Prevention và Quiz, sau đây mình sẽ giới thiệu sơ qua về phần exercise của bài SQL Injection.

Đầu tiên có 1 form đăng nhập gồm email, password và console để show logs server

Làm theo hướng dẫn nhập email và password sau đó submit

Sau khi submit thì có lỗi trả về, ở đây tiếp tục làm theo hướng dẫn, thêm một dấu nháy đơn đằng sau password’
Dấu nháy đơn: trong ngôn ngữ SQL dùng để “gói” chuỗi. Ta thường thêm nó vào sau tham số kiểu số trên chuỗi truy vấn để kiểm tra có lỗi hay không.

Ở trên ta có thể thấy server báo lỗi, có một ký tự lạ đằng sau password’ và raise lỗi SyntaxError, khi gặp lỗi này nghĩa là đằng sau server ta có thể viết code SQL bằng cách cộng chuỗi và đây là dấu hiệu để có thể tấn công SQL Injection

Hacker có thể tấn công bằng cách thêm một chuỗi giả như dưới đây

Vì lúc này điều kiện pass = ‘ ‘ or 1=1 là luôn luôn đúng, và như vậy thì hệ thống sẽ nghĩ mình login thành công => cho phép login và xem được những thông tin cá nhân của user

Nguồn

Trên đây là bài viết cơ bản những gì mình hiểu về SQL Injection nên còn nhiều thiếu sót mong bạn đọc thông cảm, để hiểu thêm về SQL Injection có thể tham khảo thêm link bên dưới
https://whitehat.vn/threads/sql-injection-paper-v1-0.37/
https://www.w3schools.com/sql/sql_injection.asp
https://www.hacksplaining.com/

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,