1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo an tòan thông tin lab 5 sql injection

16 0 0

Đ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 đề An Tòan Thông Tin Lab 5 SQL Injection
Tác giả Nguyễn Lê Gia Hân
Người hướng dẫn TS. Huỳnh Nguyên Chính
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2023
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 7,39 MB

Nội dung

Lỗ hổng bảo mật xuất hiện khi đầu vào của người dùng không được kiểm tra chính xác trong các ứng dụng web trước khi được gửi đến máy chủ cơ sở dữ liệu phía sau1.. SQL Injection Attack on

Trang 1

TRƯNG ĐI HC SƯ PHM K THUÂT TP.HCM KHOA: CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HC: AN TÒAN THÔNG TIN

LAB 5

SQL INJECTION

GVHD: TS.Huỳnh Nguyên Chính Sinh viên thực hiện: Nguyễn Lê Gia Hân MSSV: 21110432

Mã LHP: INSE330380_23_1_09

TP.Hồ Chí Minh, tháng 10 năm 2023

Trang 2

Lab 5 SQL Injection

SQL injection là một kỹ thuật chèn mã khai thác các lỗ hổng trong giao diện giữa các ứng dụng web và máy chủ cơ sở dữ liệu Lỗ hổng bảo mật xuất hiện khi đầu vào của người dùng không được kiểm tra chính xác trong các ứng dụng web trước khi được gửi đến máy chủ cơ sở dữ liệu phía sau

1 Get started

#vi /etc/hosts

# vi /etc/ apache2/sites-available/ 000-default.conf

Trang 3

2 Get Familiar with SQL Statements

mysql -u root -pseedubuntu

Trang 4

Xem các database đang có: Show database;

Xem DB User;

Trang 5

Use Users;

In ra tất cả các bảng của cơ sở dữ liệu đã chọn: show tables;

Thông tin dữ liệu bảng Credential

Trang 6

Xem thông tin của nhân viên có tên Alice:

Trang 7

3 SQL Injection Attack on SELECT Statement

Đăng nhập vào www.SEEDLabSQLInjection.com

Mã PHP home.php không an toàn, nằm trong thư mục /var /www/SQLInjection, được

sử dụng để tiến hành xác thực người dùng Đoạn mã sau cho biết cách xác thực người dùng

Trong đoạn code này, ta nhận thấy input_ name nhận GET request từ text box mà không thông qua tiền xử lý, hơn nữa, phần check data và data trong câu lệnh SQL là

Trang 8

không tách biệt (input name có thể không cần phải là một “input name”) Nhận thấy điều đó, ta có thể chèn một số câu lệnh SQL vào ô text username!

Như ta đã biết, comment trong SQL là #, ta sẽ dùng nó để ngắt dòng kiểm tra password Một vài db sẽ dùng username là ‘admin’ để quản lý nên sẽ dùng nó để tấn công

Nhập : admin ‘ #

Dấu ‘ để close tag ‘ ở phía

trước để có ‘$input_name=admin’ #

Trang 9

Kết quả thu được

Trang 10

 Đăng nhập thành công với user admin và xem được thông tin trên database

4 SQL Injection Attack from webpage

Sau khi đăng nhập qua username admin, ta biết được username của một vài nhân viên, tiếp tục bằng SQL injection để truy cập vào một account với username ‘Alice’ Code: Alice’ #

Trang 11

5 SQL Injection Attack on UPDATE Statement

Nếu một lỗ hổng SQL injection xảy ra với câu lệnh UPDATE, thiệt hại sẽ nghiêm trọng hơn, vì những kẻ tấn công có thể sử dụng lỗ hổng này để sửa đổi cơ sở dữ liệu Trong ứng dụng Quản lý nhân viên, có trang Chỉnh sửa hồ sơ cho phép nhân viên cập nhật thông tin hồ sơ của họ, bao gồm username, email, địa chỉ, số điện thoại và mật khẩu

The PHP file is located in the /var/www/SQLInjection directory

Ta cần nhắm đến vị trí của input_nickname, bởi vì đây là vị trí dễ sửa đổi nhất mà không cần quan tâm đến việc update các giá trị khác !

Trang 12

Thực hiện theo phương pháp chèn code SQL và them # để bỏ qua đoạn code phía sau !

Nhiệm vụ 5.1:

Điều chỉnh mức lương của chính bạn Như được hiển thị trong trang Chỉnh sửa Hồ

sơ, nhân viên chỉ có thể cập nhật biệt hiệu, email, địa chỉ, số điện thoại và mật khẩu của họ; họ không được phép thay đổi mức lương của họ Giả sử rằng bạn (Alice) là một nhân viên bất mãn, và sếp Boby đã không tăng lương cho bạn trong năm nay Bạn muốn tăng lương của chính mình bằng cách khai thác lỗ hổng SQL injection trong trang Edit-Profile Đăng nhập vào tài khoản Alice và chọn edit profile

Chèn đoạn code: trước ‘, không được chứa kí tự đặc biệt nào để tránh bị hiểu nhầm (không copy code từ một nơi khác vì dấu ‘ dễ bị nhầm lẫn)

‘, salary = 500000 where Name = ‘Alice’ #

Thay đổi lương của Alice lên 500000!

Trang 13

Kết quả:

Trang 14

Nhiệm vụ 5.2:

Điều chỉnh lương của người khác Sau khi tăng lương, bạn quyết định trừng phạt ông chủ Boby của mình Bạn muốn giảm lương của anh ta xuống 1 đô la Hãy chứng minh cách bạn có thể đạt được điều đó

Code:

‘, salary = 1 where Name = ‘Boby’ #

Kết quả

Trang 15

Nhiệm vụ 5.3

Sửa đổi mật khẩu của người khác Sau khi thay đổi mức lương của Boby, bạn vẫn không hài lòng, vì vậy bạn muốn đổi mật khẩu của Boby thành một thứ mà bạn biết, sau đó bạn có thể đăng nhập vào tài khoản của anh ta và gây thiệt hại thêm

Ta thấy rằng mật khẩu bị băm thông qua hàm sha1, trước khi đổi mật khẩu theo ý, ta cần băm mật khẩu ra mã cần thiết

Mật khẩu đặt là 21110432

Mã băm thu được: e55c076438b7b81463b8d4c5fe56d04a99e6d9df

Quy trình: code

‘, Password = ‘e55c076438b7b81463b8d4c5fe56d04a99e6d9df’ where Name =

‘Boby’ #

Trang 16

Đăng nhập với tài khoản của Boby và mật khẩu đã đặt !

Tấn công thành công

Ngày đăng: 08/04/2024, 17:39

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

TÀI LIỆU LIÊN QUAN

w