7-8その他のセキュリティTips465 コマンド実行関数の危険性と対策を理解する
Level1
PointOSコマンド実行処理に潜む脆弱性に注意する
コマンドインジェクションとは、その名の通り、OSが用意しているコマンドを外部から注入する攻撃です。
例えば、下記のようなコードがあったとします。
<?php
//検索キーワードをログ出力する
system("echo '{$_REQUEST["keyword"]' >> keywords.log");
?>
echoはここではPHPの関数ではなく、Unix系OSのコマンドです。例えば$_REQUEST["keyword"]
が「iphone」だった場合、
echo 'iphone' >> keywords.log
というコマンドが実行されることになります。一見問題はなさそうですが、悪意のあるユーザが、$_REQUEST["keyword"]として、下記を入力したとします。
TEST' && cat /etc/passwd #
結果、下記のコマンドがサーバ側で実行されることになります。
echo 'TEST'
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録