Hello there, ('ω')ノ
IDORで最初の報奨金を獲得することについてのすべてを。
脆弱性:
IDOR
記事:
https://infosecwriteups.com/all-about-getting-first-bounty-with-idor-849db2828c8
IDORについて読んで、DVWA、bWAPP、およびPortswiggerAcademyで練習して。
OWASPによると「安全でない直接オブジェクト参照は。
アプリケーションがユーザ指定の入力に基づいてオブジェクトへの。
直接アクセスを提供する場合に発生して。
この脆弱性の結果として、攻撃者は認証をバイパスして。
データベースレコードやファイルなどのシステム内のリソースに。
直接アクセスする可能性があって。
安全でない直接オブジェクト参照を使用すると。
攻撃者は、オブジェクトを直接指すために使用されるパラメータの値を。
変更することで、承認をバイパスしてリソースに直接アクセスできて。
このようなリソースには、他のユーザに属するデータベースエントリや。
システム内のファイルなどがあって。
今回は、プログラムに報告したシナリオのいくつかを共有することに。
同じ役割と権限を持つUser_1、User_2、User_3の3人のユーザを。
Webサイトに作成することに。
シナリオ#1:
ユーザが投稿を作成して、誰かがその投稿を自分のプロファイルで。
高く評価、コメント、共有できる機能があって。
しかし、この機能を確認していると、他のユーザはコメントで。
その投稿の作成者にしか言及できず。
言及された人は同じ通知を受け取ることに気付いて。
詳細な攻撃シナリオ:
1.User_1が投稿を作成して。
2.User_2がその投稿にコメントすると。
その投稿の作成者(この場合はUser_1)のみに言及できることに気付いて。
3.したがって、コメント(”Please check @[User_1 name]”)リクエストを。
Burpでキャプチャすると、JSONデータは次のように渡されていて。
4.{“text”:”Please check @[User_1 name]”,
”mentions”:[{“uid”:”random 9 digits",”key”:”User_1 name"}],
”message_id”:random 9 digits}
5.上記のJSONデータでは、uidはUser_1のものであり。
User_3のプロファイルにアクセスして。
User_3のプロファイル画像で「要素の検査(inspect element)」を実行することで。
user_3のuidを取得できて。
6.そのため、JSONデータで、両方の値でUser_1 nameをUser_3 nameに変更して。
User_1のuidをUser_3のuidに置き換えて。
7.最後に、その投稿で他のユーザ(User_3)について言及することができて。
言及されたユーザはその通知を受け取って。
シナリオ#2:
グループに参加するか、グループを作成する機能があって。
グループを作成した後、ユーザは他のユーザと共有できるgroup_codeを取得して。
その参照されたユーザは、グループの所有者の承認なしにグループに追加されて。
詳細な攻撃シナリオ:
1.User_1は「グループの作成」を選択して。
名前を付けてグループに説明を追加した後に。
User_1はグループのrefer_code(ランダムな6ワード(例:pgytsd))を取得して。
2.ここで、User_2は「グループに参加」を選択して。
コードにpgytsdを入力して、このリクエストをキャプチャすることに。
3.すると、「グループに参加」リクエストでは。
JSONデータは次のように渡されていて。
4.{“membership”:{“access_code”:”pgytsd”}}
5.access_codeを変更またはブルートフォースする必要があって。
6.Any usersグループに追加されたaccess_codeを変更すると。
Burp応答で、User_2はそのグループの名前と説明、および。
そのグループの所有者の名前とuidを確認できて。
Best regards, (^^ゞ