Shikata Ga Nai

Private? There is no such things.

Account takeover worth $1000を訳してみた

Hello there, ('ω')ノ

 

1000ドル相当のアカウント乗っ取りを。

 

脆弱性:

 アカウント乗っ取り

 認証回避

 情報漏えい

 パスワード再設定の不具合

 

記事:

 https://infosecwriteups.com/account-takeover-worth-1000-611452063cf

 

今回は、誤って構成された 2FA と OAuth を使用して。

最大規模の組織の 1 つでアカウントを乗っ取ることができて。

 

脆弱性に入る前に、すべてがどのように機能するか。

特に認証がどのように機能するかについて足がかりを得て。

これは、バグをより明確に理解するのに役立って。

 

Web サイトにサインインするには複数の方法がありますが2 つの方法に分類できて。

1 つ目は通常のメールとパスワードを使用する方法で。

もう 1 つは Google、GitHub などを含む OAuth を使用する方法で。

 

この Web サイトのセキュリティ機能は、このバグで大きな役割を果たした 2FA で。

顧客はこれを使用して、セキュリティ レイヤを追加できて。

 

それでは、手順とバグに移ることに。

基本的な偵察から始めましたが、何も見つからなかったので。

認証テストに移り、アカウントを作成して、重複登録、パスワードを忘れたバグや。

SQL インジェクションなどをテストして。

次に、2FA を有効にし、2FA コードをブルート フォースして。

メール、パスワード ログイン、Oauth ログインの両方でこれを試しましたが。

何も機能せず。

 

 

翌日、Google oauth アカウントで 2FA を有効にし、すべてのリクエストを傍受し。

ウェブサイトが 2FA コードをサーバに送信するときのように。

ジューシーなリクエストをリピータに送信して。

 

 

さらにいくつかの 2FA バグをテストし、うんざりしてアカウントの 2FA を停止して。

その間、すべてのリピータでリクエストに行った後、上記のリクエストでつまずき。

それを再度送信し、JWT トークンを受け取って。

authenticatorコードを 000000 のようなランダム コードに変更し。

再度リクエストを送信して、受け取った JWT トークンを推測して。

 

 

アカウントで 2FA を無効にした後でも、このリクエストを使用して。

JWT コードを取得できて。

この JWT トークンは基本的に、ユーザの認証に使用される Cookie で。

これが実際に脆弱性であることを確認するために。

1 日待ってから再度リクエストを送信し、JWT トークンを受け取って。

 

ハッキングされたアカウントに直接ログインする方法が必要ったので。

ログインしたWebサイトを閲覧し始めたところ、oauthアカウントに。

パスワードを設定して、誰でもメールとパスワードを使用して。

ログインできる機能があることがわかって。

 

 

パスワード設定リクエストを使用し、JWT トークンを受け取ったものに置き換えて。

送信するとパスワードが追加されて。

 

 

oauth を回避して、電子メールとパスワードを使用して。

直接ログインできるようになって。

このバグは、Google OAuth ログインに影響するだけでなく。

下記のサイトで使用されるすべての OAuth プロバイダに影響して。

 GitHub、Microsoft、Bitbucket、Azure Active Directory

 

注::

このバグは、顧客がアカウントで 2FA を有効にしてから無効にした場合にのみ。

発生する可能性があって。

 

影響:

攻撃者がアカウントにアクセスできたら。

1.攻撃者は、API キーなどの機密情報を表示および編集できて。

2.組織名と製品名を編集して。

3.メンバーをアカウントに招待して。

4.組織からユーザを削除して。

5.アカウントにパスワードを追加して。

6.アカウントを削除して。

 

Best regards, (^^ゞ