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.txt
を1.txt
に変更してアクセスしてみる。- 順に試していくと、どこかのログに以下のような情報が見つかる:
carlos: My password is s3cr3t-p4ssw0rd
🔐 carlos アカウントでログイン
- トップページに戻り、ログインフォームを開く。
- ユーザー名:
carlos
パスワード:先ほど見つけた内容(例:s3cr3t-p4ssw0rd
) - ログイン成功 → 🎉 ラボクリア!
🔎 学びのポイント
脆弱性 | 内容 |
---|---|
IDOR | ファイル名(ID)を変更するだけで他人のデータにアクセス可能 |
静的ファイルURLの利用 | アクセス制御が一切されていない危険な実装 |
連番IDの予測容易性 | 数値を1つずつ試せば他人のファイルが閲覧できてしまう |
🛡 開発者向けの防御策
- ファイル名をランダムなUUIDにする。
- アクセス時にセッションと一致する所有者チェックを必須に。
- ファイルアクセスに認可ミドルウェアを導入する。
🔐 「このURLにアクセスしてはいけない人が見たらどうなるか?」を常に考えることが、セキュアな設計の第一歩です。ファイル名を知っている=中身を見られる、という設計はIDORの温床です。
Best regards, (^^ゞ