Báo cáo lab 5 Database injection | Báo cáo thực tập môn An toàn thông tin Trường đại học sư phạm kỹ thuật TP. Hồ Chí Minh

3: Tấn công SQL Injection bằng câu lệnh SELECT; Sử dụng trang login từ www.SEEDLabSQLInjection.com. Ứng dụng web xác thực người dùng dựa trên hai phần dữ liệu này, vì vậy chỉ những nhân viên biết mật khẩu của họ mới được phép đăng nhập. Nhiệm vụ của bạn, với tư cách là kẻ tấn công, là đăng nhập vào ứng dụng web mặc dù không. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Tên : Quách Thị Mai Anh
Mssv: 20110610
Báo cáo lab 5
Database injection
1: Môi trường thực hành lab:
#vi /etc/hosts
Có thể chỉnh name thay vì local host, tạo ra rất nhiều các trang web phục vụ cho
các loại tấn công khác nhau
Bài này sử dụng www.SeedLadSQLInjection.com
# /etc/apache2/sites-available/ 000-default.conf
Xem cấu hình trang Web:
2: Làm quen với các câu lệnh SQL
Đầu tiên, ta sẽ install database có sẵn trên seed bằng lệnh sau:
$ mysql -u root -pseedubuntu
Ta sẽ sử dụng database Users nên ta sẽ xem bên trong Users:
mysql> use Users;
Xem các database: mysql> show databases;
Dùng lệnh sau để in ra tất cả các bảng của cơ sở dữ liệu đã chọn: mysql> show
tables;
Dùng lệnh sau để xem cấu trúc bảng credential: mysql> describe credential
Lấy thông tin của nhân viên có tên Alice:
Dùng câu lệnh: select * from credential where Name = ‘Alice’
Xem thông tin EID, Name, Password từ bảng credential: select EID , Name ,
Password from credential;
3: Tấn công SQL Injection bằng câu lệnh SELECT
Sử dụng trang login từ www.SEEDLabSQLInjection.com
Ứng dụng web xác thực người dùng dựa trên hai phần dữ liệu này, vì vậy chỉ
những nhân viên biết mật khẩu của họ mới được phép đăng nhập. Nhiệm vụ của
bạn, với tư cách là kẻ tấn công, là đăng nhập vào ứng dụng web mặc dù không
biết thông tin đăng nhập của nhân viên nào.
4: Tấn công SQL Injection từ trang web
Đăng nhập vào web với tư cách admin để xem tất cả thông tin nhân viên.
Giả sử biết tên tài khoản admin nhưng không biết mật khẩu.
Nếu đoán bừa mật khẩu sẽ không đăng nhập được:
Thực hiện tấn công bằng cách ‘#: # là comment ( ghi chú)
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, những kẻ tấn công 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ủa chúng tôi, có trang Chỉnh
sửa hồ cho phép nhân viên cập nhật thông tin hồ của họ, bao gồm biệt
hiệu, email, địa chỉ, số điện thoại và mật khẩu.
Ta thực hiện thay đổi lương của tài khoản có Name là Alice như sau:
',salary= 100000 where Name = 'Alice';#
Lương của Alice đã thay đổi thành 100000
Tấn công để đổi mật khẩu tài khoản có tên là Alice:
Giả sử mật khẩu muốn đổi cho tài khoản Alice là maianh123:
Đổi sang mã sha1 để đăng nhật:
Update mật khẩu cho Alice bằng lệnh sau:
',password = 'a135c2d6bced7664d25fa9197cbba422629733f1' where Name =
'Alice'; #
Cập nhật mật khẩu thành công
Kiểm thử bằng cách đăng nhập lại với tài khoản Alice và mật khẩu mới:
Đăng nhập thành công với tài khoản Alice và mật khẩu là maianh123
| 1/10

Preview text:

Tên : Quách Thị Mai Anh Mssv: 20110610 Báo cáo lab 5 Database injection
1: Môi trường thực hành lab: #vi /etc/hosts
Có thể chỉnh name thay vì local host, tạo ra rất nhiều các trang web phục vụ cho
các loại tấn công khác nhau
 Bài này sử dụng www.SeedLadSQLInjection.com
# /etc/apache2/sites-available/ 000-default.conf Xem cấu hình trang Web:
2: Làm quen với các câu lệnh SQL
Đầu tiên, ta sẽ install database có sẵn trên seed bằng lệnh sau: $ mysql -u root -pseedubuntu
Ta sẽ sử dụng database Users nên ta sẽ xem bên trong Users: mysql> use Users;
Xem các database: mysql> show databases;
Dùng lệnh sau để in ra tất cả các bảng của cơ sở dữ liệu đã chọn: mysql> show tables;
Dùng lệnh sau để xem cấu trúc bảng credential: mysql> describe credential
Lấy thông tin của nhân viên có tên Alice:
Dùng câu lệnh: select * from credential where Name = ‘Alice’
Xem thông tin EID, Name, Password từ bảng credential: select EID , Name , Password from credential;
3: Tấn công SQL Injection bằng câu lệnh SELECT
Sử dụng trang login từ www.SEEDLabSQLInjection.com
Ứng dụng web xác thực người dùng dựa trên hai phần dữ liệu này, vì vậy chỉ
những nhân viên biết mật khẩu của họ mới được phép đăng nhập. Nhiệm vụ của
bạn, với tư cách là kẻ tấn công, là đăng nhập vào ứng dụng web mặc dù không
biết thông tin đăng nhập của nhân viên nào.
4: Tấn công SQL Injection từ trang web
Đăng nhập vào web với tư cách admin để xem tất cả thông tin nhân viên.
Giả sử biết tên tài khoản admin nhưng không biết mật khẩu.
Nếu đoán bừa mật khẩu sẽ không đăng nhập được:
Thực hiện tấn công bằng cách ‘#: # là comment ( ghi chú)
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ủa chúng tôi, 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 biệt
hiệu, email, địa chỉ, số điện thoại và mật khẩu.
Ta thực hiện thay đổi lương của tài khoản có Name là Alice như sau:
',salary= 100000 where Name = 'Alice';#
Lương của Alice đã thay đổi thành 100000
Tấn công để đổi mật khẩu tài khoản có tên là Alice:
Giả sử mật khẩu muốn đổi cho tài khoản Alice là maianh123:
 Đổi sang mã sha1 để đăng nhật:
Update mật khẩu cho Alice bằng lệnh sau:
',password = 'a135c2d6bced7664d25fa9197cbba422629733f1' where Name = 'Alice'; #
 Cập nhật mật khẩu thành công
Kiểm thử bằng cách đăng nhập lại với tài khoản Alice và mật khẩu mới:
 Đăng nhập thành công với tài khoản Alice và mật khẩu là maianh123