Shikata Ga Nai

Private? There is no such things.

情報漏洩のよくある原因とチェックポイント:見落としやすい「隠れ情報」に要注意!

Hello there, ('ω')ノ

🧭 代表的な情報漏洩の発生箇所と具体例

1. Webクローラー向けファイル

  • /robots.txt/sitemap.xml にアクセスしてみましょう。
  • これらは「検索エンジンに見せたくない場所」を列挙しています。

    • 例:Disallow: /admin/Disallow: /backup/
  • 攻撃者にとっては「隠された重要なパスのリスト」になります。

2. ディレクトリリスティング

  • https://example.com/uploads/ のように、インデックスファイルがないとファイル一覧が表示される。
  • 特に .log, .zip, .bak, .sql などのファイルが見えると高リスク。
  • アクセス制御がなければ、実質的に全公開状態です。

3. HTMLコメント(開発者コメント)

  • <!-- TODO: remove admin panel link --> のような記述が残っていることがある。
  • ブラウザの開発者ツールや Burp Suite で確認可能。
  • コメントの中に、ディレクトリ名、パスワードヒント、内部ロジックなどが記載されていることも。

4. 詳細なエラーメッセージ

  • SQL syntax error near "SELECT * FROM users" のような応答は要注意。
  • エラーメッセージからわかる情報:

    • 使用中のデータベースの種類とバージョン
    • テンプレートエンジン名
    • ファイルパス、行番号、変数名
  • インジェクション攻撃やロジック解析の手がかりになります。

5. デバッグ出力・ログ情報

  • JSONレスポンス内の debug, error, stack フィールド。
  • フロントエンドのconsoleログ (console.log) に内部情報が出ていることも。
  • .log ファイルが公開されていれば、過去の攻撃履歴・セッション情報が見つかる可能性も。

6. ユーザーアカウントページ

  • ログイン後の /account?id=... のようなページ。
  • 他人のIDを指定すると情報が見えてしまう場合(IDOR)。
  • 表示される情報が他の攻撃(リセット、認証バイパスなど)に繋がることも

7. バックアップファイル

  • .bak, .old, .zip, .tar.gz などがそのままアップロードされていることがある。

    • 例:index.php.bak, config.old, users.sql.gz
  • 設定情報やソースコード、認証情報が丸見えになることも。

8. 不適切なサーバー構成

  • .git/ フォルダが公開されている
  • .env ファイルがダウンロード可能
  • デフォルトの設定画面が有効になっている(例:phpinfo)

9. バージョン管理履歴

  • Git, Subversionなどのバージョン管理データが残っていると、ソース履歴がまるごと見られる。
  • .git/config, .git/logs/HEAD → ブランチ名、作者名、履歴などが漏洩。

✅ まとめ

発生源 危険性
robots.txt / sitemap.xml 隠されたURLが一覧で漏洩
ディレクトリリスティング 内部ファイルが丸見え
HTMLコメント 非公開機能やロジックのヒント
エラーメッセージ データベース構造、ファイルパスなど
バックアップ・設定ファイル 完全なシステム情報の流出

🔍 ペンテストでは、「表示されていない情報」ではなく「見落とされている情報」を探す意識が重要です。開発者が「隠したつもり」でも、攻撃者にとっては格好の情報源になります。

Best regards, (^^ゞ