OSコマンドインジェクションとは?おーえすこまんどいんじぇくしょん
OSコマンドインジェクションとは、外部プログラムやシェルを呼び出す処理へ、区切り記号(;、|、&&、バッククォートなど)を含む値を渡し、開発者が意図しないOSコマンドを続けて実行させる攻撃。Webサーバの実行権限がそのまま奪われるため、ファイルの窃取から内部への足がかりまで一気に進む。
最終更新:2026-10-06
この語が出る過去問を解く →背景
Webアプリからメール送信や画像変換を行うとき、専用ライブラリを使うより既存のコマンドをシェル経由で呼ぶほうが早い、という実装の近道が入口になる。シェルは文字列を受け取って解釈する仕組みなので、値と命令の境界がそもそも存在しない。支援士では、この「値が命令として解釈される」構図をSQLインジェクションと同じ型として説明できるかが問われる。
具体例
問合せフォームの控えメールをシェル経由でsendmailに渡している実装では、宛先欄に区切り文字と別のコマンドを続けて書くと、そのコマンドがWebサーバ権限で動く。PHPのescapeshellargのような引数エスケープ関数は、この境界を守るために用意されている。
試験での引っ掛け
根本対策はシェルを介さないAPI(JavaのProcessBuilder、Pythonのsubprocessの配列渡し)で、引数を配列として渡し文字列連結をやめること。エスケープ処理やWAFは次善策にとどまる。SQLインジェクションと違い、狙われるのはDBではなくOSである点も混同しやすい。
関連用語
出た過去問
出典:平成29年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問12(IPA)
Webアプリケーションの脆弱性を悪用する攻撃手法のうち,Webページ上で入力した文字列がPerlのsystem関数やPHPのexec関数などに渡されることを利用…
正解:OSコマンドインジェクション
要点:入力がシェル経由で実行されるのがOSコマンド注入
外部から受け取った文字列を、シェルを介してコマンドを実行する関数へそのまま渡すと、区切り文字を混ぜることで任意のコマンドを実行されます。これがOSコマンドインジェクションです。対策はシェルを経由する関数を使わない、あるいは値を厳密に検証・エスケープすることです。
出典:平成30年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問13(IPA)
Webアプリケーションの脆弱性を悪用する攻撃手法のうち,Webページ上で入力した文字列がPerlのsystem関数やPHPのexec関数などに渡されることを利用…
正解:OSコマンドインジェクション
要点:入力がシェルで実行されるのがOSコマンド注入
受け取った文字列を検証せずにシェル経由でコマンドを実行する関数へ渡すと、区切り文字を混ぜることで任意のコマンドを実行されます。これがOSコマンドインジェクションです。シェルを使う関数を避ける、値を厳密に検証するといった対策が必要です。
出典:平成30年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問2(IPA)
Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる,攻撃者が…
正解:OSコマンドインジェクション
要点:区切り文字でシェルコマンドを続ける攻撃はOSコマンドインジェクション
クエリ文字列にセミコロンとシェルコマンドが埋め込まれている点が手掛かりである。UNIX系シェルではセミコロンがコマンドの区切りとして解釈されるため、CGIが受け取った値をそのままシェルに渡していると、本来の処理に続けて任意のコマンドが実行されてしまう。パスワードファイルの読み出しを狙ったこの手口はOSコマンドインジェクションに該当する。対策はシェル呼び出しを避けるか、外部入力をコマンド文字列に連結しないことである。
出典:令和2年度 10月試験 情報処理安全確保支援士試験 午前Ⅱ 問1(IPA)
Webサーバのログを分析したところ、Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる、攻撃者が…
正解:OSコマンドインジェクション
要点:区切り文字でシェルコマンドを続ける攻撃はOSコマンドインジェクション
クエリ文字列にセミコロンとシェルコマンドが埋め込まれている点が手掛かりである。UNIX系シェルではセミコロンが命令の区切りとして解釈されるため、CGIが受け取った値をそのままシェルに渡していると、本来の処理に続けて任意のコマンドが実行されてしまう。パスワードファイルの表示を狙ったこの手口はOSコマンドインジェクションである。対策は外部入力をコマンド文字列に連結せず、シェルを経由しないAPIを使うことである。
出典:令和4年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問1(IPA)
Webサーバのログを分析したところ、Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる、攻撃者が…
正解:OSコマンドインジェクション
要点:区切り記号に続くシェルコマンドの注入はOSコマンドインジェクション
クエリ文字列にセミコロンでコマンドを区切り、パスワードファイルを表示するシェルコマンドを続けている点が手掛かりである。これはWebアプリがパラメータをシェル経由で外部コマンドに渡す実装になっている場合に、任意のOSコマンドを実行させる攻撃であり、OSコマンドインジェクションに該当する。対策は外部コマンド呼出しの回避、シェルを介さないAPIの利用、入力値の厳格な検証である。
出典・参考
公式シラバスの3 技術要素 > 1. 情報セキュリティ > (7) 攻撃手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。