Bài giảng Bảo mật ứng dụng Web: SQL injection - Nguyễn Hữu Thể
lượt xem 8
download
Bài giảng Bảo mật ứng dụng Web: SQL injection do Nguyễn Hữu Thể biên soạn nhằm cung cấp cho bạn kiến thức tổng quan về SQL injection như khái niệm, các dạng lỗi thường gặp, các dạng tấn công SQL injection. Mời các bạn tham khỏa!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Bảo mật ứng dụng Web: SQL injection - Nguyễn Hữu Thể
- BẢO MẬT ỨNG DỤNG WEB SQL INJECTION 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: 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'); 5
- Dạng tấn công vượt qua kiểm tra đăng nhập (authorization bypass) Username Password Câu truy vấn nhận dữ liệu: $sql = "SELECT * FROM users WHERE username = '".$_POST[‘username']."' AND password = '" . $_POST['password']. "'"; 6
- Dạng tấn công vượt qua kiểm tra đăng nhập (authorization bypass) require 'dbcon.php'; $sql = "SELECT * FROM users WHERE username = '".$_POST['username']."' AND password = '" . $_POST['password']. "'"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_array($result); if($row) echo "Thành công"; else echo "Thất bại"; mysqli_close($conn);
- Dạng tấn công vượt qua kiểm tra đăng nhập (authorization bypass) Đăng nhập: - Nhập vào ô username: khongbiet' OR 1 = 1 LIMIT 1 -- ] - Nhập vào ô password: khongbiet Kết quả truy vấn: SELECT * FROM users WHERE username = 'khongbiet' OR 1 = 1 LIMIT 1 -- ]' AND password = 'khongbiet' Tương đương: SELECT * FROM users WHERE username = 'khongbiet' OR 1 = 1 LIMIT 1 8
- Dạng tấn công vượt qua kiểm tra đăng nhập (authorization bypass) TH1: Nhập đúng username và password Đăng nhập thành công TH2: không biết username và password Đăng nhập thành công 9
- Dạng tấn công sử dụng câu lệnh SELECT Lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống • => Dò tìm các điểm yếu khởi đầu cho việc tấn công. Thông thường: • Sẽ có một trang nhận ID của tin cần hiển thị • Sau đó truy vấn nội dung của tin có ID này • Hoặc ô nhập liệu tìm kiếm 10
- Dạng tấn công sử dụng câu lệnh SELECT Ví dụ: CREATE TABLE monhoc ( maMon varchar(8) NOT NULL PRIMARY KEY, tenMon varchar(100) NOT NULL, soTC int(11) NOT NULL ); INSERT INTO monhoc (maMon, tenMon, soTC) VALUES ('03021003', 'Tin học cơ sở', 4), ('03021004', 'Nhập môn lập trình', 4), ('03021005', 'Phương pháp lập trình hướng đối tượng', 4); 11
- Dạng tấn công sử dụng câu lệnh SELECT Nhập tênmôn:
- 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 SELECT Mã môn: 03021003. Tên môn: Tin học cơ sở 14
- Dạng tấn công sử dụng câu lệnh SELECT Mã môn: 03021004. Tên môn: Nhập môn lập trình Mã môn: 03021005. Tên môn: Phương pháp lập trình hướng đối tượng 15
- Dạng tấn công sử dụng câu lệnh SELECT Mã môn: 03021003. Tên môn: Tin học cơ sở Mã môn: 03021004. Tên môn: Nhập môn lập trình Mã môn: 03021005. Tên môn: Phương pháp lập trình hướng đối tượng SELECT * FROM monhoc WHERE tenMon = 'a' or 1=1-- ' 16
- Dạng tấn công sử dụng câu lệnh SELECT Câu lệnh Union: kết hợp 2 table cùng số cột SELECT * FROM users Union SELECT * From monhoc 17
- Dạng tấn công sử dụng câu lệnh SELECT http://localhost/MyPhamOnline/php/index.php?function=sanphamchitiet&id=1 Liệt kê 1 dữ liệu có trong table 18
- Dạng tấn công sử dụng câu lệnh SELECT http://localhost/MyPhamOnline/php/index2.php?function=sanphamchitiet&id=0 or 1=1 -- Liệt kê tất cả dữ liệu có trong table
- Dạng tấn công sử dụng câu lệnh SELECT Thực hiện nhiều truy vấn cùng lúc Giả sử câu truy vấn có dạng: $sql = "SELECT * FROM monhoc WHERE maMon = '" . $mamon . "'"; Người tấn công có thể nhập dữ liệu như sau: a'; DROP TABLE users; SELECT * FROM sinhvien WHERE '1' = '1 Câu truy vấn sau khi nhận dữ liệu như sau: SELECT * FROM monhoc WHERE maMon = 'a'; DROP TABLE users; SELECT * FROM sinhvien WHERE '1' = '1' 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Bảo mật hệ thống thông tin - Lê Phúc
137 p | 884 | 304
-
Bài giảng Bảo mật hệ thống thông tin dành cho hệ đào tạo từ xa - Lê Phúc (HV Bưu chính Viễn thông TP.HCM)
137 p | 246 | 69
-
Bài giảng Bảo mật thông tin - Bài 3: Mã hóa đối xứng hiện đại
54 p | 226 | 33
-
Bài giảng Bảo mật thông tin - Bài 4: Mã hóa công khai RSA
31 p | 127 | 27
-
Bài giảng Bảo mật cho hệ thống (Chương 4)
38 p | 116 | 20
-
Bài giảng Triển khai ứng dụng mạng - Bài 6: Bảo mật mạng với IPSec và Certificate
18 p | 134 | 19
-
Bài giảng Bảo mật thông tin - Bài 9: Ứng dụng kiểm soát truy cập
23 p | 154 | 17
-
Bài giảng Bảo mật hệ thống thông tin: Chương 10 - ĐH Bách khoa TP HCM
64 p | 140 | 15
-
Bài giảng An toàn ứng dụng web và cơ sở dữ liệu: Phần 1
94 p | 51 | 9
-
Bài giảng An toàn ứng dụng web & CSDL: Chương 1 - TS. Hoàng Xuân Dậu
50 p | 31 | 8
-
Bài giảng Kỹ thuật tấn công và phòng thủ trên không gian mạng - Module 05: Bảo mật ứng dụng
84 p | 40 | 8
-
Bài giảng Bảo mật hệ thống thông tin
137 p | 49 | 7
-
Bài giảng An toàn ứng dụng web & CSDL: Chương 4 - TS. Hoàng Xuân Dậu
34 p | 25 | 6
-
Bài giảng An toàn ứng dụng web & CSDL: Chương 6 - TS. Hoàng Xuân Dậu
102 p | 14 | 6
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 9: Các nội dung mở rộng
48 p | 19 | 5
-
Bài giảng Bảo mật, người dùng và Google
21 p | 31 | 4
-
Bài giảng Phát triển ứng dụng web: Chương 8 - Lê Đình Thanh
70 p | 10 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn