Shikata Ga Nai

Private? There is no such things.

LAB: Insecure Direct Object References(IDOR)によるチャットログ漏洩とアカウント乗っ取り

Hello there, ('ω')ノ

🎯 目的

  • チャットログのURL構造から他ユーザーのログにアクセス。
  • ログ内に記載された carlos のパスワードを見つける。
  • その情報でログイン → ラボクリア。

🧪 手順(Burp Suite不要、ブラウザ操作で可)

1. チャット機能を利用する

  • Live chat」タブを開く。
  • 適当なメッセージを送信。
  • メッセージ送信後、「View transcript(チャット記録を見る)」をクリック。

2. チャットログのURLを確認

例:

https://acme.lab.net/files/transcript/5.txt
  • 5.txt のような形式で、ファイル名に連番IDが使われている。

3. ファイル名を改ざん

  • 5.txt1.txt に変更してアクセスしてみる。
  • 順に試していくと、どこかのログに以下のような情報が見つかる:
carlos: My password is s3cr3t-p4ssw0rd

🔐 carlos アカウントでログイン

  • トップページに戻り、ログインフォームを開く。
  • ユーザー名:carlos パスワード:先ほど見つけた内容(例:s3cr3t-p4ssw0rd
  • ログイン成功 → 🎉 ラボクリア!

🔎 学びのポイント

脆弱性 内容
IDOR ファイル名(ID)を変更するだけで他人のデータにアクセス可能
静的ファイルURLの利用 アクセス制御が一切されていない危険な実装
連番IDの予測容易性 数値を1つずつ試せば他人のファイルが閲覧できてしまう

🛡 開発者向けの防御策

  • ファイル名をランダムなUUIDにする
  • アクセス時にセッションと一致する所有者チェックを必須に。
  • ファイルアクセスに認可ミドルウェアを導入する。

🔐 「このURLにアクセスしてはいけない人が見たらどうなるか?」を常に考えることが、セキュアな設計の第一歩です。ファイル名を知っている=中身を見られる、という設計はIDORの温床です。

Best regards, (^^ゞ