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à usernamepassword.

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à administratorngườ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:

'+UNION+SELECT NULL,username || '~' || password FROM users--

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

Last updated