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