1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Cơ sở an toàn thông tin báo cáo thực hành sql inject sử dụng câu lệnh select thực hiện tấn công sql injection

11 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ Sở An Toàn Thông Tin Báo Cáo Thực Hành: SQL-Inject
Tác giả Trần Văn Hoàng
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Thể loại báo cáo thực hành
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 604,35 KB

Nội dung

I Tìm hiểu lý thuyếtKhái niệm SQL Injection: SQL injection là kỹ thuật tấn công bằng cách thêm mã độc vào các truy vấn SQL thông qua đầu vào của người dùng.. Nếu ứng dụng web không kiểm

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-o0o -CƠ SỞ AN TOÀN THÔNG TIN Báo cáo thực hành: SQL-Inject Sinh viên: Trần Văn Hoàng

Mã sinh viên: B22DCAT129

Lớp: E22CQCN05-B

Trang 2

Danh mục và hình ảnh 3

I) Tìm hiểu lý thuyết 4

II) Thực hành chi tiết 4

1) Khởi động bài lab 4

2) Nhiệm vụ 1: MySQL console 5

3) Nhiệm vụ 2: Sử dụng câu lệnh SELECT thực hiện tấn công SQL Injection 6

a) Tấn công từ trang web 6

b) Tấn công SQL-injection từ dòng lệnh: 7

4) Nhiệm vụ 3: Tấn công SQL injection bằng câu lệnh UPDATE 7

a) Tấn công SQL injection bằng câu lệnh UPDATE – chỉnh sửa password của người khác 7

b) Tấn công SQL injection bằng câu lệnh UPDATE – chỉnh sửa password của người khác 9

5) Stoplab 10

III) Kết luận 11

Trang 3

DANH MỤC VÀ HÌNH ẢNH

HÌNH 1: KHỞI ĐỘNG VÀ CHECKWORK 4

HÌNH 2: MÃ HÓA TỆP VĂN BẢN 5

HÌNH 3: DỮ LIỆU TRONG DATABASE 5

HÌNH 4: CÚ PHÁP TẤN CÔNG SQL-INJECTION TỪ TRANG WEB 6

HÌNH 5: ĐĂNG NHẬP THÀNH CÔNG VÀO TÀI KHOẢN ADMIN 6

HÌNH 6: TẤN CÔNG SQL-INJECTION BẰNG DÒNG LỆNH 7

HÌNH 7: KẾT QUẢ TRẢ VỀ KHI CỐ THAY ĐỔI THÔNG TIN TRONG CƠ SỞ DỮ LIỆU 7

HÌNH 8: THÔNG TIN GÔC CỦA 'ALICE ' 8

HÌNH 9: TĂNG LƯƠNG CHO ALICE 8

HÌNH 10: TẠO TỪ MÃ SHA1 CHO MẬT KHẨU MỚI 9

HÌNH 11: THAY ĐỔI MẬT KHẨU CỦA BOBY 9

HÌNH 12: ĐĂNG NHẬP VÀO NGƯỜI DÙNG BOBY VỚI MẬT KHẨU ĐÃ ĐƯỢC THAY ĐỔI 10

HÌNH 13: THÔNG TIN CỦA NGƯỜI DÙNG BOBY 10

HÌNH 14: CHECKWORK LẠI KẾT QUẢ ĐÃ CHẠY 11

Trang 4

I) Tìm hiểu lý thuyết

Khái niệm SQL Injection: SQL injection là kỹ thuật tấn công bằng cách thêm mã độc vào các truy vấn SQL thông qua đầu vào của người dùng Nếu ứng dụng web không kiểm tra kỹ dữ liệu đầu vào, kẻ tấn công có thể đưa mã SQL độc hại vào các truy vấn, từ

đó kiểm soát truy vấn và thao tác với cơ sở dữ liệu

SQL Injection từ Ứng Dụng Web: Mục tiêu của SQL injection từ trang web là kiểm tra tính an toàn của hệ thống xác thực người dùng bằng cách truy cập trái phép với vai trò quản trị viên mà không cần biết ID hay mật khẩu

SQL Injection từ Dòng Lệnh (Terminal): Ngoài tấn công qua giao diện web, sinh viên còn được học cách thực hiện tấn công SQL injection từ dòng lệnh bằng công cụ curl

để gửi các yêu cầu HTTP, giúp hiểu rõ cách yêu cầu HTTP có thể bị lợi dụng để tấn công

hệ thống

Nối Câu Lệnh SQL: Kỹ thuật nối câu lệnh SQL giúp kẻ tấn công thực hiện thêm các thao tác khác ngoài truy vấn ban đầu, ví dụ như thêm, sửa, hoặc xóa dữ liệu trong cơ sở

dữ liệu Điều này giúp sinh viên hiểu rõ hơn về mức độ nguy hiểm của việc không kiểm tra kỹ dữ liệu đầu vào

Phòng Chống SQL Injection bằng Câu Lệnh Prepared Statements: Một biện pháp phòng chống hiệu quả là sử dụng các câu lệnh prepare trong PHP để phân tách rõ ràng giữa mã và dữ liệu Câu lệnh prepare cho phép tạo truy vấn SQL an toàn bằng cách giữ nguyên cấu trúc truy vấn mà không thay đổi ý nghĩa của dữ liệu đầu vào, giúp ngăn ngừa nguy cơ SQL injection

II) Thực hành chi tiết

1) Khởi động bài lab

Tiến hành khởi động bài lab thông qua lệnh “labtainer sql-inject” sau khi khởi động

sử dụng lệnh “checkwork” để kiểm tra xem bài thực hành đã chạy chưa.

Hình 1: khởi động và checkwork

Trang 5

2) Nhiệm vụ 1: MySQL console

Hình 2: mã hóa tệp văn bản

Hình 3: Dữ liệu trong database

Trang 6

3) Nhiệm vụ 2: Sử dụng câu lệnh SELECT thực hiện tấn công SQL Injection a) Tấn công từ trang web

Đăng nhập vào trang web với tư cách quản trị viên theo phương thức SQL-injection

Hình 4: cú pháp tấn công sql-injection từ trang web

Sau khi đăng nhập vào tài khoản Admin thì kết quả trả về sẽ ở bên dưới

Hình 5: Đăng nhập thành công vào tài khoản Admin

Trang 7

b) Tấn công SQL-injection từ dòng lệnh:

Trong terminal client sử dụng lệnh như trong hình để truy cập vào người dùng admin, kết quả trả về bên dưới

Hình 6: tấn công sql-injection bằng dòng lệnh

Thử thay đổi dữ liệu trong database bằng câu lệnh nối

Hình 7: kết quả trả về khi cố thay đổi thông tin trong cơ sở dữ liệu

Từ kết quả trả về sinh viên nhận thấy:

- Tuy chúng ta không thể thay đổi dữ liệu của database nhưng mật khẩu của người dùng(phần được bôi đen trong ảnh) đã bị lộ ra, từ đây chúng ta có thể đăng nhập vào và sửa đổi, thậm chí là xóa dữ liệu nếu được phép

- Không thể sử dụng câu lệnh nối trong trường hợp này

4) Nhiệm vụ 3: Tấn công SQL injection bằng câu lệnh UPDATE

a) Tấn công SQL injection bằng câu lệnh UPDATE – chỉnh sửa password của người khác

Trang 8

Hình 8: Thông tin gôc của 'Alice '

Tiến hành thay đổi thông tin của Alice bằng câu lệnh sau:

', Salary = 999999 where EID = 100000;#

Nhập vào trường name

Trang 9

b) Tấn công SQL injection bằng câu lệnh UPDATE – chỉnh sửa password của người khác

Tạo từ mã SHAđể tạo mật khẩu mới, do mật khẩu được lưu dưới dạng 1 từ mã SHA Mật khẩu mới sẽ là “123456789”

Hình 10: tạo từ mã SHA1 cho mật khẩu mới

Từ người dùng Alice tiến hành thay đổi mật khẩu của người dùng có EID là 20000 là Boby Thông qua lệnh sau:

', Password='f7c3bc1d808e04732adf679965ccc34ca7ae3441' where EID = 20000;#

Hình 11: Thay đổi mật khẩu của Boby

Trang 10

Hình 12: Đăng nhập vào người dùng Boby với mật khẩu đã được thay đổi

Hình 13: Thông tin của người dùng Boby

5) Stoplab

Trước khi dừng bài thực hành tiến hành kiểm tra lại tiến trình hoàn thành bài tập Nếu mục curl_count >= 1 và selected_alice = Y tức là các nhiệm vụ đã hoàn thành

Trang 11

Hình 14: checkwork lại kết quả đã chạy

III) Kết luận

Bài thực hành này giúp sinh viên nhận thức rõ về mức độ nguy hiểm của lỗ hổng SQL Injection và những hậu quả nghiêm trọng có thể xảy ra khi bảo mật dữ liệu không được bảo vệ đầy đủ Thông qua các nhiệm vụ, sinh viên đã hiểu cách thức tấn công SQL Injection hoạt động và thấy rõ ràng rằng việc kiểm tra và làm sạch đầu vào là rất quan trọng để tránh những lỗ hổng này Bằng cách thử nghiệm các cuộc tấn công trên trang web giả lập, sinh viên có thể thấy cách dữ liệu nhạy cảm của người dùng dễ dàng bị đánh cắp hoặc sửa đổi nếu không có các biện pháp bảo vệ hiệu quả Phần cuối cùng của bài tập cũng nhấn mạnh tầm quan trọng của câu lệnh chuẩn bị (prepared statements) trong việc tăng cường bảo mật, nhờ khả năng ngăn chặn hiệu quả các đoạn mã độc SQL từ đầu vào của người dùng

Ngày đăng: 15/12/2024, 23:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w