Shikata Ga Nai

Private? There is no such things.

OAuth account hijacking via redirect_uri

Hello there, ('ω')ノ

 

Webを閲覧しているとソーシャルメディアアカウントを使用して。

ログインできるサイトに出くわすことが多々あって。

この機能が、OAuth2.0フレームワークで構築されている可能性があって。

けっこう、実装ミスが多いようで。

なので、脆弱性も多いようで。

OAuth認証のメカニズムについては、いろんなサイトで説明されているかと。

 

今回は、redirect_uriを介したOAuthアカウントのハイジャックを。

 

f:id:ThisIsOne:20210117162733p:plain

 

まずは、ソーシャルメディアに下記でログインして。

 wiener/peter

 

f:id:ThisIsOne:20210117162908p:plain

 

アカウントを紐づけして。

 

f:id:ThisIsOne:20210117162933p:plain

 

一旦、ログアウトして。

 

f:id:ThisIsOne:20210117163054p:plain

 

再度、ログインしてみると。

 

f:id:ThisIsOne:20210117164012p:plain

 

すでに紐づいているようなので。

exploit serverを起動して。

 

f:id:ThisIsOne:20210117163054p:plain

Solutionにあるiframeをコピーして。

 

f:id:ThisIsOne:20210117164610p:plain

 

Bodyに張り付けて。

 

f:id:ThisIsOne:20210117224859p:plain

 

承認サーバに転送しているリクエストからURLをコピーして。

 

https://ac211f0e1fe61fd1800399270260001a.web-security-academy.net/auth?client_id=x5wh13k29leocuyu6o1d6&redirect_uri=https://acfd1f901fda1fb18061993b00a50051.web-security-academy.net/oauth-callback&response_type=code&scope=openid%20profile%20email

 

f:id:ThisIsOne:20210117172444p:plain

 

アプリケーションの OAuthクライアント IDを書き換えて。

 

https://ac211f0e1fe61fd1800399270260001a.web-security-academy.net/auth?client_id=x5wh13k29leocuyu6o1d6

 

f:id:ThisIsOne:20210117172746p:plain

 

クライアント ID の登録済み redirect_uriを書き換えて。

アプケーション用の有効なリダイレクト URI を登録する必要があるので。

exploit serverのURI を。

 

https://acb81f4e1f2f1f8d80a19974017d0089.web-security-academy.net/

 

そして、Storeして。

View exploitして確認して。

 

f:id:ThisIsOne:20210117172819p:plain

 

f:id:ThisIsOne:20210117172334p:plain

 

Deliver exploit to victimしたら。

Access logでログを確認して。

 

f:id:ThisIsOne:20210117173219p:plain

 

ログの中からコードをコピーして。

 8wmJTsebcUA3VVjzDjF9dyecsiCMlO-AXbYDKcLYWp1

 

f:id:ThisIsOne:20210117173417p:plain

 

フィードバックするリクエストでRepeaterを。

 

f:id:ThisIsOne:20210117173607p:plain

 

コードを置き換えて、Sendして。

 

f:id:ThisIsOne:20210117173743p:plain

 

レスポンスをブラウザを見ることに。

 

f:id:ThisIsOne:20210117174015p:plain

 

f:id:ThisIsOne:20210117174050p:plain

 

Admin panelで。

 

f:id:ThisIsOne:20210117174131p:plain

 

carlosをDeleteすると。

 

f:id:ThisIsOne:20210117174203p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210117174225p:plain

 

Best regards, (^^ゞ