Lab: SQL injection UNION attack, retrieving multiple values in a single column
Mô tả
Phòng thí nghiệm 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 để 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.
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 một cuộc tấn công SQL injection UNION để lấy tất cả tên người dùng và mật khẩu, sau đó sử dụng thông tin đó để đăng nhập với tư cách là administrator
người dùng.
Phân tích
Tương tự bài lab trước, với bộ lọc danh mục sản phẩm là Gifts.

Tìm ra được truy vấn trả về 2 cột, tìm xem các cột có chứa dữ liệu dạng chuỗi

Cột đầu tiên không phải

Cột thứ hai chứa dữ liệu dạng chuỗi. Tuy nhiên, bảng đã biết có chứa 2 cột dữ liệu kiểu chuỗi, cần sử dụng kỹ thuật nối chuỗi nhằm đưa nhiều giá trị vào trong một cột.
Ví dụ, trên Oracle/PostgreSQL,có thể gửi đầu vào:
' UNION SELECT username || '~' || password FROM users--
Giải pháp
Ở bài này sử dụng payload sau:

Có được thông tin tài khoản administrator
và đăng nhập

Last updated