Shikata Ga Nai

Private? There is no such things.

パストラバーサルとは?— サーバー内部のファイルに不正アクセスする脆弱性

Hello there, ('ω')ノ

✅ 概要

パストラバーサル(Path Traversal)とは、別名「ディレクトリトラバーサル」とも呼ばれる脆弱性です。

攻撃者が本来アクセスできないサーバー内部のファイルを読み取ったり、場合によっては書き換えたりできてしまうセキュリティ上の欠陥です。


🔓 何ができてしまうのか?

パストラバーサルを悪用されると、次のような重要なファイルに不正にアクセス可能になります:

  • アプリケーションのコード(機密ロジックの漏洩)
  • バックエンドの認証情報ファイル(DB接続情報など)
  • OSの機密ファイル(例:/etc/passwdC:\Windows\win.ini

さらに:

  • ✍️ 書き込みが可能な場合、アプリの動作改変やバックドアの設置も可能になります。

🧪 典型的な攻撃例(UNIX/Linux)

例えば、画像ファイルを読み込む以下のようなURLがあったとします:

https://example.com/loadImage?filename=dog.png

このURLの filename パラメータにパストラバーサルを仕掛けると:

https://example.com/loadImage?filename=../../../../etc/passwd

→ サーバーの /etc/passwd ファイルの中身が表示されてしまう、というわけです。


⚠️ 危険な点まとめ

危険度 内容
🔓 情報漏洩 内部設計や資格情報の流出
📉 信頼性の低下 外部にサーバー内部構造が知られる
🛠 書き込み被害(高リスク) Webシェル設置 → サーバー完全制御

✅ 対策

  • ../..%2f などのトラバーサル文字列を検知・ブロック
  • ユーザー入力に基づくファイルアクセス処理を避ける
  • 絶対パス固定、もしくはホワイトリストベースで安全なファイル名のみ許可

✅ まとめ

パストラバーサルは、攻撃者が「サーバーの中を勝手に覗き見る」手段です。

特にファイルベースで機密情報や認証情報を管理しているアプリケーションでは、被害が非常に大きくなる可能性があります。

Best regards, (^^ゞ