Lab: SQL injection UNION attack, retrieving data from other tables
Last updated
Last updated
Bài thực hành này chứa lỗ hổng SQL injection trong bộ lọc danh mục sản phẩm. Kết quả từ truy vấn được trả về trong phản hồi của ứng dụng, do đó bạn có thể sử dụng tấn công UNION để truy xuất dữ liệu từ các bảng khác. Để xây dựng một cuộc tấn công như vậy, bạn cần kết hợp một số kỹ thuật đã học trong các bài thực hành trước.
Cơ sở dữ liệu chứa một bảng khác có tên là users
, với các cột có tên là username
và password
.
Mục tiêu: Thực hiện tấn công SQL injection UNION để lấy tất cả tên người dùng và mật khẩu, sua đó sử dụng thông tin đó để đăng nhập với tư cách là người dùng administrator
Để lấy dữ liệu với thông tin bảng đã biết, có thể gửi dữ liệu đầu vào dạng:
' UNION SELECT username, password FROM users--
Đẻ làm vậy cần tìm một truy vấn trả về 2 cột, cả 2 cột đều chứa dữ liệu dạng chuỗi
Kiểm tra với bộ lọc là Pets, xác định được số cột là 2
Kiểm tra xem cột nào chưa dữ liệu dạng chuỗi
Như vậy cả hai cột đều chứa dữ liệu kiểu chuỗi, có thể lấy dữ liệu bảng users
đã biết:
'+UNION+SELECT+username,password+FROM+users--
Đã có được thông tin đăng nhập của người dùng administrator,
đăng nhập