Hello there, ('ω')ノ
🎯 1. 情報漏洩とは?
情報漏洩(Information Disclosure)は、本来公開されていないはずの機密情報や内部情報がユーザに見える状態を指します。 これにより、攻撃の足がかりや認証バイパスなど、他の脆弱性と連携した悪用が可能になります。
🧭 2. チェックすべき対象・ページ
| 種類 | チェックポイント | 備考 |
|---|---|---|
| 📄 エラーメッセージ | スタックトレース・DBエラー・ファイルパス | ページ操作中の異常系に注目 |
| 🔍 デバッグ情報 | 開発者用ログ・バージョン表示など | 特にベータ・ステージング環境 |
| 🔐 認証情報 | Cookie, Authorization, APIキーの露出 | JavaScriptやHTTPレスポンスに埋め込まれていないか |
| 📂 ディレクトリリスト | index.htmlがないディレクトリ |
サーバの設定ミスで表示されることがある |
| 📜 ソースコード | .git, .svn, .env, config.js など |
公開サーバにアップロードされていないか |
| 📦 APIレスポンス | 不要なフィールドが含まれていないか | password_hash, is_admin, token など |
| 🌐 robots.txt | 非公開ページの記載がないか | 検索エンジンに見せたくないページをリスト化しているが… |
🔍 3. 確認ポイント(UIとリクエスト両方)
| 対象 | 確認内容 |
|---|---|
| ページ遷移時のエラー画面 | 内部構造やSQLが漏れていないか |
| JavaScriptコード | APIキーや内部URL、環境名(dev/stage)など |
| APIレスポンス | ユーザに見せるべきでない情報が含まれていないか |
| HTMLコメント | 機密情報、テスト用URL、未使用コードが含まれていないか |
| HTTPヘッダ | サーバ種別(Server: Apacheなど)・デバッグ情報 |
🛠️ 4. 診断方法(手順)
- 通常操作 + 異常操作(入力値ミス・URL改変など)を実施
- 表示されたエラーメッセージを観察
- ブラウザの開発者ツールでHTML / JS / リクエストの中身を調査
- APIやファイルURLに直接アクセス
- 漏洩していそうな項目があれば記録して確認
🧪 5. よくある情報漏洩例
| 対象 | 内容 |
|---|---|
| エラーメッセージ | SQLException at line 45, NullPointerException, in /var/www/html/... |
| JSファイル | const apiKey = "sk_live_...", isAdmin: true |
| HTMLコメント | <!-- TODO: 管理者ページは /admin/secure.html --> |
.git ディレクトリ |
.git/config, .git/logs/HEAD などでソース追跡可能 |
| robots.txt | Disallow: /secret-admin/ などの隠しページが発見される |
🧾 6. サンプルケース
例1:SQLエラーの情報漏洩
https://example.com/user?id=abc' → 画面に「You have an error in your SQL syntax」などが表示 → DBの種類や構文が漏洩(MySQL特有のエラーならMySQL確定)
例2:APIレスポンスで余計な情報が漏洩
{ "username": "testuser", "email": "test@example.com", "password_hash": "$2y$10$..." }
→ 本来返してはいけないハッシュ情報が含まれている
⚠️ 7. 注意点・ベストプラクティス
- 🔒 スタックトレースは絶対に出してはいけない
- 🔎 JSやHTMLに管理ページの情報やAPIキーが含まれていないか確認
- 🛠️ 開発者用のコードやコメントが残っていないかもチェック
- 📜
.gitや.envなどの開発系ファイルは絶対に公開しない
🧰 8. 補助ツール
- Burp Suite(Logger, Repeater)
- 開発者ツール(F12) → Network/Source
- Dirbuster / gobuster:隠しファイルの探索
- wfuzz, ffuf:ファイル・ディレクトリ列挙
🔑 見つけやすいキーワード・兆候
Exception,Traceback,SQLException,stack trace.git,.env,config,password,debug,admin- JavaScript内に
apiKey,token,auth,secretなど
Best regards, (^^ゞ