有人能向我解释一下php代码注入攻击吗


Can anyone explain this php code injection attack to me?

我在服务器上收到了对意外URL的请求。

特别是/%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E

这种情况似乎每隔几个小时就会发生一次。

我运行了urlhttp://www.url-encode-decode.com/结果是:

phppath/php-d allow_url_include=on-d safe_mode=off-d suhosin.simulation=on-d disable_functions="-d open_basedir=none-d auto_prepend_file=php://input-n

攻击者想在这里做什么?

攻击者正试图利用CVE-2012-1823,这仅适用于在CGI模式下使用PHP的情况(mod_PHP不易受此攻击)。

对PHP二进制攻击者使用-d参数注入可以禁用PHP可能存在的各种保护机制,并通过使用auto_prepend_file直接执行PHP代码(在处理任何PHP文件之前自动执行PHP代码),而php://input是POST请求数据流。

除非您的web服务器日志是自定义的,否则您可能不会发现攻击者在POST请求中有什么内容(POST数据没有正常记录)。

检查你的PHP,例如使用这样的脚本:

<?php phpinfo();

PHP版本在第一行,将其与CVE定义进行比较。如果您使用的是易受攻击的版本,请尽快更新它,并在那里查找服务器API行,如果它不包含CGI内容,您目前应该是安全的,但使用过时的PHP版本从来都不好。

攻击者试图更新您的php配置文件(php.ini)allow_url_include、safe_mode是不同的php配置设置,对安全性很重要,因此它们在默认情况下被禁用