応用情報技術者試験 令和7年春 午前問36 解説付き過去問
問題
Webサーバのログを分析したところ、Webサーバへの攻撃と思われるHTTPリクエストヘッダーが記録されていた。
次のHTTPリクエストヘッダーから推測できる、攻撃者が悪用しようとしていた可能性が高い脆弱性はどれか。
ここで、HTTPリクエストヘッダー中の"%20"は空白を意味する。
〔HTTPリクエストヘッダーの一部〕
GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
〔HTTPリクエストヘッダーの一部〕
GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
正解
解説
この問題は、Webサーバのログから発見されたHTTPリクエストヘッダーを分析し、攻撃者がどのような脆弱性を狙っていたかを特定することを求めています。
- HTTPリクエストヘッダーの解析
HTTPリクエストヘッダーには、「GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1」という行が含まれています。ここで注目すべきは、クエリパラメータ「user=」の後にセミコロン「;」が使われている点と、その後に「cat /etc/passwd」というOSコマンドが続いている点です。URL中に「%20」は空白を表しており、これはコマンドの一部として解釈されます。 - OSコマンドインジェクションとは
OSコマンドインジェクションは、攻撃者が悪意のあるコードをWebアプリケーションを通じて実行することを可能にする脆弱性です。このケースでは、攻撃者はWebサーバのCGIスクリプトが不適切に入力を処理していることを利用し、サーバ上で任意のOSコマンドを実行しようとしています。成功すれば、サーバの機密情報にアクセスしたり、さらなる攻撃の足掛かりを得ることが可能です。
したがって、与えられたHTTPリクエストヘッダーからはOSコマンドインジェクションが試みられていることが推測されます。このため、適切な答えはOSコマンドインジェクションです。