Lab: SSRF via OpenID dynamic client registration
Last updated
Last updated
Phòng thí nghiệm này cho phép các ứng dụng khách hàng tự đăng ký động với dịch vụ thông qua endpoint đăng ký chuyên dụng. Một số dữ liệu cụ thể của khách hàng được dịch vụ OAuth sử dụng theo cách không an toàn, điều này làm lộ ra một vectơ tiềm ẩn cho SSRF.
Mục tiêu: Tạo một để truy cập http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/
và đánh cắp secret access key của OAuth provider's cloud.
Bạn có thể đăng nhập vào tài khoản của mình bằng thông tin đăng nhập sau:wiener:peter
Đăng nhấp, tìm địa chỉ OAUTH-SERVER
Trong Burp Repeater, tạo POST
request để đăng ký client application giả mạo với OAuth service.
Kiểm tra luông OAuth và lưu ý rằng trang người dùng đồng ý "Authorize" hiển thị logo của client app. Điều này được lấy từ /client/CLIENT-ID/logo
.
Các ứng dụng khách có thể cung cấp URL cho logo của họ bằng cách sử dụng logo_uri
thuộc tính trong quá trình đăng ký động.
Trong Repeater, quay lại POST /reg
đã tạo trước đó. Thêm logo_uri
thuộc tính. Nhấp chuột phải và chọn "Insert Collaborator payload" để dán URL Collaborator làm giá trị của nó. Yêu cầu cuối cùng sẽ trông giống như thế này:
Gửi yêu cầu đăng ký ứng dụng khách hàng mới và sao chép client_id
từ phản hồi.
Trong Repeater, hãy đi đến GET /client/CLIENT-ID/logo
. Thay thế CLIENT-ID
trong đường dẫn bằng client_id
mới mà vừa sao chép và gửi yêu cầu.
Đi đến hộp thoại tab Collaborator và kiểm tra bất kỳ tương tác mới nào. Lưu ý rằng có một tương tác HTTP đang cố gắng tìm nạp logo không tồn tại của bạn. Điều này xác nhận rằng có thể sử dụng thành công thuộc tính logo_uri
để thu thập các yêu cầu từ máy chủ OAuth.
Thực hiện đăng ký lại với trỏ đến logo_uri
URL mục tiêu
/reg