OSコマンドインジェクションとは?
OSコマンドインジェクションとは、Webアプリが外部プログラムをシェル経由で呼ぶ際、入力値にシェルのメタ文字を混ぜられ、任意のOSコマンドを実行される攻撃。サーバ本体を乗っ取られるため被害が最も重く、応用情報では「シェルを介さないAPIで呼ぶ」という根本対策が問われる。
応用情報技術者試験の過去問では2回出題されています。
おーえすこまんどいんじぇくしょん
OSコマンドインジェクションの意味
Webアプリが外部プログラムをシェル経由で呼ぶ際、入力値にシェルのメタ文字を混ぜられ、任意のOSコマンドを実行される攻撃。サーバ本体を乗っ取られるため被害が最も重く、応用情報では「シェルを介さないAPIで呼ぶ」という根本対策が問われる。
OSコマンドインジェクションの具体例
問い合わせフォームがメール送信コマンドを組み立てている場合、宛先欄に ; cat /etc/passwd を入れると区切り文字が効いて別コマンドが動く。対策は、シェル起動を伴う関数を使わず引数を配列で渡す方式に変え、Webサーバの実行権限も最小化しておく。
OSコマンドインジェクションは試験でどう引っ掛けられる?
「SQLインジェクションと同じ対策で防げる」は不正確。危険な文字の集合も実行系も異なる。またディレクトリトラバーサルは「読めるファイルの範囲」の問題、こちらは「任意コマンド実行」で深刻度が桁違いである。
OSコマンドインジェクションと関連する用語
OSコマンドインジェクションが出た過去問
Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダーが記録されていた。次のHTTPリクエストヘッダーから推測できる,攻撃…
正解:OSコマンドインジェクション
要点:コマンド区切り文字+OSコマンドの痕跡はOSコマンドインジェクション
リクエストのクエリ文字列に、セミコロンでコマンドを区切ってシステムのパスワードファイルを表示させる文字列が埋め込まれている。これはCGIプログラムが受け取った値をそのままシェルに渡してしまう場合に、意図しないOSコマンドを実行させる攻撃、すなわちOSコマンドインジェクションである。対策は外部プログラム呼出しを避けるか、シェルに渡す値を厳密に検証・エスケープすることである。
出典:令和7年度 春期 応用情報技術者試験 午前 問36(IPA)Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。
正解:シェルを起動できる言語機能を利用した実装を避ける。
要点:OSコマンドインジェクションはシェル起動機能を使わないのが本筋
OSコマンドインジェクションは、外部から受け取った値がシェル経由で実行されることによって起きる。したがって根本的な対策は、シェルを起動する言語機能(外部コマンド実行関数など)を使わずに、同等の処理を言語のライブラリ機能で実装することである。やむを得ず使う場合は、渡す値を許可した文字だけに限定する。
出典:令和7年度 春期 応用情報技術者試験 午前 問42(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。