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, (^^ゞ