Shikata Ga Nai

Private? There is no such things.

IDOR - Inside the Session Storageを訳してみた

Hello there, ('ω')ノ

 

IDOR - セッション ストレージの内部を。

 

脆弱性

 IDOR

 

記事:

 https://shahjerry33.medium.com/idor-inside-the-session-storage-88af485fc899

 

まとめ:

IDOR は Insecure Direct Object Reference の略で。

壊れたアクセス制御カテゴリに該当する脆弱性で。

簡単に言えば、この脆弱性は、アプリケーションがユーザ提供の入力を。

使用してオブジェクトに直接アクセスする場合に発生して。

安全でない直接オブジェクト参照の脆弱性を使用すると。

水平方向の権限昇格が可能になり、場合によっては垂直方向の権限昇格にも。

つながる可能性があって。

 

説明:

複製されたプライベート プログラムの 1 つで、この脆弱性を発見し。

アプリケーションはアプリケーションのセッション ストレージに user_id を。

保存しており、このユーザ ID はユーザのアカウントにバインドされていて。

これは、ユーザのアカウントの user_id に対してアクセス制御チェックが。

実行されていない非常に単純で単純なバグで。

値を変更するだけで、横方向の権限昇格につながり。

利用可能な資金を操作できる別のユーザーのアカウントを使用できて。

 

sessionStorage とは、単一セッションのデータを Web ブラウザに。

保存できるようにする Web ストレージ API で。

sessionStorage は、ローカル ストレージに似ていますが、唯一の違いは。

ブラウザを閉じるか特定のセッションを終了するとデータが消去されることで。

 

sessionStorage は、ユーザのセッション中にフォームデータなどの。

ユーザーデータを保存するために使用でき、サーバにリクエストを。

送信する必要性を減らしてユーザエクスペリエンスを向上させて。

 

IDOR とセッション ストレージの構造:

通常の IDOR とは異なり、セッション ストレージを使用する IDOR は。

本質的に異なり。

永続的な変更を行うことはありませんが、重大度は同じで。


解剖学

 

通常の IDOR:

IDOR の通常の動作では、被害者が自分のプロファイルにアクセスして変更を。

元に戻さない限り、被害者のプロファイル設定を永久に変更できて。

 

sessionStorage の IDOR:

この種の IDOR では、sessionStorage を介して攻撃が実行されるため。

変更は永続的に行われず。

ブラウザが閉じられるか、特定のセッションが終了するとすぐに。

sessionStorage の性質により、行った変更 (水平権限昇格など) は元に戻されて。

この脆弱性をどのように見つけましたかというと。

 

1.残高を確認できる対象のウェブサイトに移動して。(右側)

 

対象ウェブサイト

 

2.右クリック > [Inspect] > [Storage] > [Session Storage] > http://target.com

 

Inspect


sessionStorage 

 

3.次に、user_id を被害者の user_id に変更し、ページをリロードして。


user_id の変更


ページのリロード

 

4.被害者のアカウントにログインして。


被害者のアカウント

 

これは、user_id がユーザのアカウントにバインドされていて。

アクセス チェックが実行されなかったため、この脆弱性が発生して。

 

影響:

どのユーザも別のユーザのアカウントにアクセスできるため。

横方向の権限昇格につながる可能性があり、場合によっては。

縦方向の権限昇格にもつながる可能性があり。

 

計算されたCVSS:

Vector String : CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L

Score : 8.3 (High)

 

緩和策:

アクセス チェックを実行し、参照されているすべてのオブジェクトを。

検証する必要があり。

認証と承認のチェックも実行する必要があり。

それとは別に推測を防ぐために、ID は英数字にする必要があって。

 

Bes regards, (^^ゞ