Phòng thí nghiệm này chứa lỗ hổng SQL injection . Ứng dụng sử dụng cookie theo dõi để phân tích và thực hiện truy vấn SQL chứa giá trị của cookie đã gửi. Kết quả của truy vấn SQL không được trả về.
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à usernamevà password
Mục tiêu: Tìm cách rò rỉ mật khẩu của người dùng administrator, sau đó đăng nhập vào tài khoản của họ.
Phân tích
Xác định có thể khai thác ứng dụng với lỗi SQL injection qua các thông báo lỗi có thể nhìn thấy được
Thêm dấu ' vào TrackingID
Thông báo lỗi cho thấy truy vấn ứng dụng xây dựng có cả đầu vào vừa thêm
Khi thêm dấu -- để bỏ quan phần còn loại của truy vấn
Kết quả truy vấn thành công
Thử kích hoạt phản hồi có điều kiện
Không thành công, có vẻ như có giới hạn ký tự
Có thể sử dụng hàm CAST() chuyển đổi một kiểu dữ liệu sang kiểu dữ liệu khác nhằm tạo ra thông báo lỗi và thực thi payload được cast.
Giải pháp
'||cast((select username from users limit 1)as int)--
'||cast((select password from users limit 1)as int)--