當前位置:
首頁 > 知識 > 一張GIF圖片就能讓伺服器宕機的PHP漏洞

一張GIF圖片就能讓伺服器宕機的PHP漏洞

最近,台灣Web漏洞挖掘大牛Orange Tsai在對一些Web開發框架和程序實現模塊進行安全審核的過程中,發現了一些有意思的漏洞。就比如說,這個PHP的CVE-2018-5711,它能用一張GIF圖片就可導致伺服器發生崩潰直至宕機,在現實中非常容易利用。在此,Orange Tsai簡單地介紹了這個漏洞。

漏洞影響的PHP版本 包含以下PHP系列和其它所有PHP版本

PHP 5

PHP 7.0

PHP 7.1

PHP 7.2

漏洞細節 漏洞存在於文件ext/gd/libgd/gdgifin.c中,其中在LWZReadByte_函數中存在一個循環(while-loop):

GetCode函數僅只是一個包裝類,GetCode_才是真正的執行體:

} GetCode_ 會調用GetDataBlock來讀取GIF圖片中的數據:

以上就是涉及到的漏洞代碼,你有發現一些端倪嗎?

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

因此,最終結果就是,一張GIF圖片就可以實現無限循環,導致伺服器資源耗盡,直到崩潰宕機。

PoC

由於現實網路中,很多伺服器都會用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

更多分享,敬請關注

本文來源網路,侵立刪!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PHP技術大全 的精彩文章:

一套5萬名開發人員學了都說好的Hadoop視頻教程
PHP 運行機制與原理

TAG:PHP技術大全 |