⚠️ 第5章:よくある脆弱性②:CSRFとLFI
こんにちは、守山しずくです🌸
今回は、 「あなたの代わりに勝手に操作される」CSRF ** と、 ** 「ファイルを読み取られる」LFI という2つの脆弱性について解説します!
💣 CSRF(クロスサイト・リクエスト・フォージェリ)とは?
CSRFとは、 ログイン中のユーザーの操作を、他のサイトから勝手に実行させる攻撃 のことです。
たとえば…
あなたがログイン中の銀行サイトに、次のようなリンクをクリックさせられたら?
<img src="https://mybank.example.com/transfer?to=hacker&amount=10000">
このリンクを表示するだけで、ログイン中の「あなたの権限」で送金されてしまうことがあります。
ポイント:
- 「ユーザーが意図せず操作」してしまうのが特徴
- 実行されるのは あなたの権限 なので非常に危険!
🛡️ CSRF対策の基本
- CSRFトークンの利用
- フォームごとに「使い捨ての秘密鍵」をつけて、正当な送信だけを受け付ける
- Refererヘッダーのチェック
- 外部サイトからの不正なアクセスを弾く
- 重要な操作は再認証させる
- パスワードの再入力などで安全性アップ
🕳️ LFI(ローカルファイルインクルージョン)とは?
LFIとは、 サーバー内のファイルを外部から読み取られる脆弱性 のことです。
たとえば…
以下のようなPHPコードがあったとします。
<?php include($_GET["page"]); ?>
ここに ?page=../../../../etc/passwd
と入力されると、
Linuxの重要ファイル /etc/passwd
が読み取られてしまいます😱
LFIで狙われやすいファイル:
- /etc/passwd(Linuxのユーザー情報)
- Apacheの設定ファイル
- アクセスログ
- .envファイル など
🛡️ LFI対策の基本
- ユーザー入力をファイル名として使わない
- 動的読み込みは極力避ける
- 入力値のバリデーション
- ファイル名をホワイトリストで制限する
- 絶対パスで限定的に処理する
- 決まったフォルダの中しか読み込ませないようにする
✅ まとめ
- CSRFは「あなたの代わりに勝手に操作する」攻撃
- LFIは「サーバー内部のファイルを盗み見る」攻撃
- どちらも「入力値の取り扱い」がカギ!
次回は、 「第6章:情報収集(Recon)」 をお届け予定です📡
ハッカーが攻撃前にどんな情報を調べるのか?一緒にのぞいてみましょう🌸
💬 フォローしてくれたら、怖くないセキュリティ解説を毎日お届けします♪