目次
問題文
Webアプリケーションの脆弱性を悪用する攻撃手法のうち,入力した文字列がPerlのsystem関数,PHPのexec関数などに渡されることを利用し,不正にシェルスクリプトを実行させるものは,どれに分類されるか。
ア HTTPヘッダーインジェクション
イ OSコマンドインジェクション
ウ クロスサイトリクエストフォージェリ
エ セッションハイジャック
解説
解答
イ
この問題は Webアプリケーションに対する典型的な攻撃手法 の分類を理解しているかを問うものです。
ア:HTTPヘッダーインジェクション
これはWebアプリケーションに不正なHTTPレスポンスヘッダーを注入する攻撃です。
例えば Set-Cookie ヘッダーを書き換えたり、レスポンス分割を起こして不正なページを表示させるといった攻撃が可能です。
ヘッダー操作を悪用する点が特徴であり、OSコマンドの実行とは関係ありません。
イ:OSコマンドインジェクション
これが正解です。
Webアプリケーションが外部コマンドを呼び出す関数(例:Perlのsystem関数、PHPのexec関数)に入力をそのまま渡すと、攻撃者が入力にOSコマンドを仕込むことでサーバ上で不正なコマンドを実行させることができます。
例えば ; ls -al のように入力して、サーバ内のファイル一覧を取得するといった不正行為が可能になります。
Webアプリケーションの脆弱性を突いた代表的な「インジェクション攻撃」の一種です。
ウ:クロスサイトリクエストフォージェリ(CSRF)
CSRFは、認証済みユーザーに意図しないリクエストを送らせる攻撃です。
ユーザーがログイン中に攻撃者が仕込んだリンクを踏むと、知らない間に送金や設定変更が行われてしまうといった被害が典型例です。
外部コマンドの実行とは無関係です。
エ:セッションハイジャック
これはユーザーのセッションIDを盗み取り、正規ユーザーになりすます攻撃です。
盗聴やXSSでセッションIDを抜き取られることで、攻撃者は本人に成り代わってログインできます。
これもOSコマンド実行とは別の種類の攻撃です。