CentOS 7.x VPS を Apache 2.4.29 と PHP 7.0.28 で実行していますが、ログに次のメッセージが表示されるようになりました。しばらくの間、オンラインの記事からできる限り php.ini のセキュリティを確保してきましたが、次の操作を実行すると HTTP ステータス コード 200 success が表示されるのはなぜでしょうか。これは何を実行しているのでしょうか。また、これを防ぐにはどうすればよいのでしょうか。私の知る限りでは、die()
と同等ですexit()
。これは、既知の古いバッファ オーバーフロー エクスプロイトでしょうか。
しかし肝心なのは、なぜ成功が返されるのか、そしてそれがどのような損害を与えたのかということです。
[18/Mar/2018:09:57:21 +0000] "POST /?q=die('z!a'.'x');&w=die('z!a'.'x');&e=die('z!a'.'x');&r=die('z!a'.'x');&t=die('z!a'.'x');&y=die('z!a'.'x');&u=die('z!a'.'x');&i=die('z!a'.'x');&o=die('z!a'.'x');&p=die('z!a'.'x');&a=die('z!a'.'x');&s=die('z!a'.'x');&d=die('z!a'.'x');&f=die('z!a'.'x');&g=die('z!a'.'x');&h=die('z!a'.'x');&j=die('z!a'.'x');&k=die('z!a'.'x');&l=die('z!a'.'x');&z=die('z!a'.'x');&x=die('z!a'.'x');&c=die('z!a'.'x');&v=die('z!a'.'x');&b=die('z!a'.'x');&n=die('z!a'.'x');&m=die('z!a'.'x');&eval=die('z!a'.'x');&enter=die('z!a'.'x'); HTTP/1.1" 200 3564
答え1
これは、PHP Web アプリケーションの脆弱性をブラインド プローブするものです。信頼できない入力、または指定されたクエリ パラメータのいずれかから何らかの方法でコードを実行する PHP Web アプリケーションがある場合、スクリプトは終了し、z!ax
Web ページ出力に印刷されます。
このような事態が発生すると、プローバーは後で(おそらく数秒後)戻ってきて、実際に脆弱性を悪用することになります。