![cef5d859fddb69714c9bc13a63dbeea8.png](https://i-blog.csdnimg.cn/blog_migrate/1ad907eb89dbba99f9d53cee5b1dcddb.jpeg)
不知道你们有没有用过NGINX服务器,如果在NGINX服务器上运行PHP写的网站,并且开启了PHP-FPM功能,那要小心有漏洞,这个漏洞会允许别人未授权下攻击你的服务器。
这个漏洞CVE-2019-11043能影响到PHP-FPM配置的网站,PHP-FPM是另一种PHP FastCGI的实现,使用PHP编程语言编写的脚本提供高效的处理。漏洞的主要PHP-FPM模块中的“ env_path_info”下溢内存损坏问题,并与其他问题链接在一起,使别人更容易在Web服务器上远程攻击。
![af5f121c66c01cc018e20bea110068a5.png](https://i-blog.csdnimg.cn/blog_migrate/d40875f3219cb9dc47fe20007dde2932.jpeg)
哪种PHP的网站容易受到黑客的攻击?
运行PHP7+版本容易受攻击的服务器,但PHP-FPM下溢的错误也影响之前的PHP版本。简单地说,如果存在以下情况,你们的网站就容易受到攻击:
1、NGINX配置为将PHP页面请求转发到PHP-FPM处理器。
2、fastcgi_split_path_info指令存在于配置中,并且包含以'^'符号开头和以'$'符号结尾的正则表达式。
3、PATH_INFO变量使用fastcgi_param定义。
4、没有try_files $ uri = 404或if(-f $ uri)之类的检查来确定文件是否存在。
fastcgi_split_path_info命令将PHP网页的URL分为两部分,帮助PHP-FPM引擎以及值包含其路径信息。
![cf639ecf71c403617b42e05282b1d862.png](https://i-blog.csdnimg.cn/blog_migrate/654738d5c6d95ebbf0f8c361e2891668.jpeg)
这个漏洞如何利用PHP FPM运行?
定义fastcgi_split_path_info伪指令的正则表达式,通过使用换行符进行操作,使split函数最终将路径信息设置为空。由于FPM代码中有一个算术指针,错误地认为env_path_info的前缀等于php脚本的路径,而没有实际验证服务器上文件的存在,因此攻击者可以利用这个缺陷来覆盖数据,并通过请求目标网站的特制URL在内存中存储。
在后台,内存可以添加自定义php.ini值,在PHP-FPM配置文件中。攻击者可以使用Web Shell执行任意的代码块。
所以我建议你们将PHP更新到PHP 7.3.11和PHP 7.2.24以上,比较安全一点。
往期内容:
钓鱼丨揭秘:高仿微信公众号进行“钓鱼”获利的套路
攻击丨杂谈黑灰产业的暴利行情
攻击丨网络的黑灰产你们看不见的黑吃黑
套路|揭秘网赚之路:有人利用公众号广告撸羊毛
套路|日入8万的抖音口红
套路|揭秘:2019年的新项目,炒鞋还炒出k线