脆弱性の説明:
Nginx はデフォルトで CGI モードでの PHP 解析をサポートしています。一般的な方法は、定期的なマッチングを通じて Nginx 設定ファイルに SCRIPT_FILENAME を設定することです。 URL http://192.168.1.102/phpinfo.jpg/1.php にアクセスすると、$fastcgi_script_name が「phpinfo.jpg/1.php」に設定され、SCRIPT_FILENAME に構築されて PHP CGI に渡されます。 PHP で fix_pathinfo オプションがオンになっている場合、PHP は SCRIPT_FILENAME が phpinfo.jpg、1.php が PATH_INFO であると認識するため、phpinfo.jpg は PHP ファイルとして解析されます。
脆弱性の危険性:
WebServer Fastcgi の設定が不適切な場合、他のファイル (css、js、jpg、その他の静的ファイルなど) が解析され、php スクリプトとして実行されます。ユーザーが悪意のあるスクリプト Web シェルを静的ファイルに変更して Web サーバーにアップロードし、解析と実行のためにバックエンド PHP に渡すと、攻撃者はサーバー上での操作権限を取得します。
修復ソリューション:
(Nginx ユーザーはオプション 1 またはオプション 2 を選択できます。IIS ユーザーはオプション 1 を使用してください)
オプション 1、php.ini ファイルを変更し、cgi.fix_pathinfo の値を 0 に設定します。完了したら、PHP と NGINX (IIS) を再起動してください。
オプション 2、次のコードを Nginx 構成ファイルに追加します:
コードをコピーします コードは次のとおりです:
if ( $fastcgi_script_name ~ ..*/.*php ) {
リターン 403;
}
このコード行の意味は、test.jpg/a.php に類似した URL が一致すると、403 エラー コードが返されるということです。変更が完了したらNginxを再起動してください。
。