Shikata Ga Nai

Private? There is no such things.

Testing Cookies worth $500を訳してみた

Hello there, ('ω')ノ

 

500ドル相当のCookieのテストを。

 

脆弱性:

 アカウントの乗っ取り

 IDOR

 

記事:

 https://sankalpa02.medium.com/testing-cookies-worth-500-8fc2310e6d7e


今回は、検索リスト「sso.example.io」と仮定して。

SSOログインの脆弱性に関するレポートを検索していて。

2つのアカウントを作成して。

まずは、CSRFの脆弱性をテストしたものの運がなく。

 

次に、パスワードリセット機能をテストすることに。

OTPコード、トークンがリファラヘッダまたは応答でリークされる可能性があって。

ウェブサイトのログインフローを観察しようと思って。

WebサイトがJWTトークンを使用してユーザを識別する場合に。

JWTの設定ミスが発生することを期待して。

自分のIDパスワードがリクエストを傍受して。

リクエストで、[ログイン]ボタンをクリックして応答を傍受したものの。

応答本文にJWTトークンやその他のコードはなくて。

ただ、ブラウザに対してユーザを識別することは何かと考えて。

クッキーのテストを開始して。

下記が、サーバからの応答で。

 

f:id:ThisIsOne:20210806103212p:plain

 

すべてのCookieヘッダを別のアカウントに置き換えてみると。

ユーザを識別する下記のトークンがあって。

 SetCookies: example_token = token


このヘッダをさらに深く掘り下げると、下記のように。

分離されたランダムトークンがいくつかあって。

 1|random_string_and_integer|5桁のコード|5桁のコード|random_string_and_integer |

 

ここで私の目を引いたのは、5桁のコードがヘッダで繰り返されていて。

2番目のアカウントとは1文字しか異なっていなくて。

 

f:id:ThisIsOne:20210806103241p:plain

 

トークンヘッダでわかるように、5桁のコード(47402)が繰り返されていて。

2番目のアカウントコードは47403で。

そこで、その5桁のコード2番目のアカウントに置き換えてから。

2番目のアカウントにログインしてから。

コード4740247401に置き換えたことを確認して。

すると、別のユーザのアカウントにログインすることができて。

 

Best regards, (^^ゞ