Báo cáo thực hành môn An toàn và bảo mật thông tin | Học viện Công nghệ Bưu chính Viễn thông

Báo cáo thực hành môn An toàn và bảo mật thông tin của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

lOMoARcPSD|37054152
A. Lý thuyết
SQL Injection (chèn mã độc SQL) một kỹ thuật cho phép kẻ tấn công
chèn mã SQL vào dữ liệu gửi đến máy chủ và được thực hiện trên máy
chủ CSDL.
Nguyên nhân: Dữ liệu đầu vào từ người dùng hoặc tcác nguồn khác
không được kiểm tra hoặc kiểm tra không kỹ lưỡng.
Tùy mức độ tinh vi, SQL Injection có thể cho phép kẻ tấn công:
o Vượt qua các khâu xác thực người dung.
o Chèn, xóa hoặc sửa đổi dữ liệu.
o Đánh cắp các thông tin trong CSDL. o Chiếm
quyền điều khiển hệ thống.
Một số biện pháp khắc phục có thể kể tới:
o Kiểm tra dữ liệu kích thước. o Định dạng dữ liệu.
o Tạo các bộ lọc. o Sử dụng stored procs.
B. Thực hành
1. Vượt qua khâu xác thực người dung.
Đăng nhập tự do: nhập aaaa' or 1=1 -- username chuỗi bất kỳ
password. Kết quả đăng nhập thành công với tài khoản người
dùng đầu tiên trong danh sách.
lOMoARcPSD|37054152
Đăng nhập vào i khoản một người dùng chỉ định: nhập david' -
username chuỗi bất kỳ password. Kết quả đăng nhập thành
công với tài khoản người dùng david nếu tồn tại tài khoản với user
này.
Thay tên David thành tên người dùng khác, nếu tồn tại sẽ đăng nhập
thành công với người dung đó.
Tìm thấy người dùng có username là hieudz
lOMoARcPSD|37054152
Phân tích câu lệnh SQL được thực hiện (hiển thị trên trang) giải
thích kết quả có được.
Trong code sử dụng câu truy vấn trực tiếp là 1 biến, ta đưa aaaa’ là 1
tên username tùy ý, 1 = 1 luôn trả về giá trị True, or là toán tử hoặc
trả về giá trị đúng khi một trong hai kết quả đúng đoạn code phía
trước mặc định đúng, -- để biểu thị các dòng code phía sau trở
thành các dòng comment vô nghĩa
2. Trích xuất dữ liệu từ Cơ sở dữ liệu.
Tìm số trường trong câu truy vấn của trang:
Sử dụng order by 1
Sử dụng order by 2
lOMoARcPSD|37054152
Sử dụng order by 3
Sử dụng order by 4 và thấy lỗi
Suy ra: Chỉ tổng số 3 trường, đến trường thứ 4 tgặp lỗi không
tìn tại trường thứ 4.
lOMoARcPSD|37054152
Tương tự, sử dụng union select để thử với 3 trường và cũng ra kết
quả. Vậy có tổng cộng 3 trường tồn tại ở bảng tbl_products.
Hiển thị thông tin hệ quản trị CSDL và hệ điều hành:
Trích xuất danh sách các bảng của CSDL:
lOMoARcPSD|37054152
Trích xuất danh sách các trường của một bảng:
Các trường của bảng 'tbl_users'
lOMoARcPSD|37054152
Các trường của bảng 'tbl_test'
Trích xuất dữ liệu bảng:
Trích xuất dữ liệu bảng tbl_users
lOMoARcPSD|37054152
Trích xuất dữ liệu bảng tbl_test
Trích xuất các trường của bảng student
lOMoARcPSD|37054152
Trích xuất bản ghi trùng mã sinh viên
3. Thêm, sửa, xóa dữ liệu.
Câu lệnh: samsung'; update tbl_users set password='test' where
username='david'; --
Câu lệnh: samsung'; insert into tbl_users (full_name, username,
password) values ('Tom Cruise','tom','abc123'); --
lOMoARcPSD|37054152
Câu lệnh: samsung'; delete from tbl_users where username =
'tom';--
Thử với các câu lệnh khác:
lOMoARcPSD|37054152
Thêm tài khoản Pham Minh Hieu vào tbl_user
4. Khảo sát lỗi chèn mã SQL trên trang web.
Trang web có đường link http://www.nesiyaholidays.com/login.php bị
lỗi khi chèn đoạn mã do.thi.minh.hoa@framgia.com' OR 1 = 1 LIMIT
1 -- ' ] với mật khẩu bất kì vẫn sẽ đăng nhập được thành công.
| 1/11

Preview text:

lOMoARcPSD| 37054152 A. Lý thuyết
• SQL Injection (chèn mã độc SQL) là một kỹ thuật cho phép kẻ tấn công
chèn mã SQL vào dữ liệu gửi đến máy chủ và được thực hiện trên máy chủ CSDL.
• Nguyên nhân: Dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác
không được kiểm tra hoặc kiểm tra không kỹ lưỡng.
• Tùy mức độ tinh vi, SQL Injection có thể cho phép kẻ tấn công:
o Vượt qua các khâu xác thực người dung.
o Chèn, xóa hoặc sửa đổi dữ liệu.
o Đánh cắp các thông tin trong CSDL. o Chiếm
quyền điều khiển hệ thống.
• Một số biện pháp khắc phục có thể kể tới:
o Kiểm tra dữ liệu kích thước. o Định dạng dữ liệu.
o Tạo các bộ lọc. o Sử dụng stored procs. B. Thực hành
1. Vượt qua khâu xác thực người dung.
• Đăng nhập tự do: nhập aaaa' or 1=1 -- → username và chuỗi bất kỳ
→ password. Kết quả đăng nhập thành công với tài khoản người
dùng đầu tiên trong danh sách. lOMoARcPSD| 37054152
• Đăng nhập vào tài khoản một người dùng chỉ định: nhập david' -→
username và chuỗi bất kỳ → password. Kết quả đăng nhập thành
công với tài khoản người dùng david nếu tồn tại tài khoản với user này.
• Thay tên David thành tên người dùng khác, nếu tồn tại sẽ đăng nhập
thành công với người dung đó.
Tìm thấy người dùng có username là hieudz lOMoARcPSD| 37054152
• Phân tích câu lệnh SQL được thực hiện (hiển thị trên trang) và giải
thích kết quả có được.
Trong code sử dụng câu truy vấn trực tiếp là 1 biến, ta đưa aaaa’ là 1
tên username tùy ý, 1 = 1 luôn trả về giá trị True, or là toán tử hoặc
trả về giá trị đúng khi một trong hai kết quả đúng đoạn code phía
trước mặc định là đúng, -- để biểu thị các dòng code phía sau trở
thành các dòng comment vô nghĩa
2. Trích xuất dữ liệu từ Cơ sở dữ liệu.
• Tìm số trường trong câu truy vấn của trang: Sử dụng order by 1 Sử dụng order by 2 lOMoARcPSD| 37054152 Sử dụng order by 3
Sử dụng order by 4 và thấy lỗi
Suy ra: Chỉ có tổng số 3 trường, đến trường thứ 4 thì gặp lỗi vì không tìn tại trường thứ 4. lOMoARcPSD| 37054152
Tương tự, sử dụng union select để thử với 3 trường và cũng ra kết
quả. Vậy có tổng cộng 3 trường tồn tại ở bảng tbl_products.
• Hiển thị thông tin hệ quản trị CSDL và hệ điều hành:
• Trích xuất danh sách các bảng của CSDL: lOMoARcPSD| 37054152
• Trích xuất danh sách các trường của một bảng:
Các trường của bảng 'tbl_users' lOMoARcPSD| 37054152
Các trường của bảng 'tbl_test'
• Trích xuất dữ liệu bảng:
Trích xuất dữ liệu bảng tbl_users lOMoARcPSD| 37054152
Trích xuất dữ liệu bảng tbl_test
Trích xuất các trường của bảng student lOMoARcPSD| 37054152
Trích xuất bản ghi trùng mã sinh viên
3. Thêm, sửa, xóa dữ liệu.
• Câu lệnh: samsung'; update tbl_users set password='test' where username='david'; --
• Câu lệnh: samsung'; insert into tbl_users (full_name, username,
password) values ('Tom Cruise','tom','abc123'); -- lOMoARcPSD| 37054152
• Câu lệnh: samsung'; delete from tbl_users where username = 'tom';--
• Thử với các câu lệnh khác: lOMoARcPSD| 37054152
Thêm tài khoản Pham Minh Hieu vào tbl_user
4. Khảo sát lỗi chèn mã SQL trên trang web.
Trang web có đường link http://www.nesiyaholidays.com/login.php bị
lỗi khi chèn đoạn mã do.thi.minh.hoa@framgia.com' OR 1 = 1 LIMIT
1 -- ' ]
với mật khẩu bất kì vẫn sẽ đăng nhập được thành công.