近日,PHP被爆出存在遠程DOS漏洞,若黑客利用該漏洞構造PoC發起連接,容易導致目標主機CPU被迅速消耗。此漏洞涉及眾多PHP版本,因而影響范圍極大。
POC(概念驗證)是對某些想法的一個不完整的實現,以證明其可行性,示范其原理,其目的是為了驗證一些概念或理論。在計算機安全術語中,概念驗證經常被用來作為0day、exploit的別名。(通常指並沒有充分利用這個漏洞的exploit)
漏洞產生的原因是PHP解析multipart/form-datahttp請求的body part請求頭時,重復拷貝字符串導致DOS。而遠程攻擊者可以通過發送惡意構造的multipart/form-data請求,導致服務器CPU資源被 耗盡,從而遠程DOS服務器。
另據了解,在今年4月3日就有用戶在PHP官網提交了PHP遠程DoS漏洞(PHP Multipart/form-data remote dos Vulnerability),代號69364。由於該漏洞涉及PHP的眾多版本,故其影響面較大,一經發布迅速引發多方面關注。此後,各種PoC已經在 網絡上流傳。
此次漏洞具備如下特性:
受此漏洞影響的軟件及系統包括PHP的如下版本。
根據綠盟漏洞檢測數據顯示,在提交了12791個網站中,有3216多個網站存在漏洞,中槍率約為25%。
PHP官方已經提供了PHP 5.4.41、5.5.25、5.6.9的補丁 ,而PHP 5.3版本補丁暫未提供,但有網友根據官方補丁,制作了PHP5.3 版本的”民間版”補丁:https://coding.net/u/simapple/p/oldphppatch/git
截至之後《lnmp一鍵安裝包》中PHP 5.3.29版本已經打好補丁,之前版本修補方法如下:
PHP 5.4 PHP 5.5 PHP 5.6
./upgrade_php.sh #輸入最新版本(5.4.41、5.5.25、5.6.9)
PHP 5.3
cd lnmp/src wget http://mirrors.linuxeye.com/lnmp/src/php5.3patch wget -c http://mirrors.linuxeye.com/lnmp/src/php-5.3.29.tar.gz tar xzf php-5.3.29.tar.gz cd php-5.3.29 patch -p1 < ../php5.3patch ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \ --with-fpm-user=www --with-fpm-group=www --enable-fpm --disable-fileinfo \ --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir \ --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath \ --enable-shmop --enable-exif --enable-sysvsem --with-curl --enable-mbregex \ --enable-inline-optimization --enable-mbstring --with-mcrypt --with-gd \ --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets \ --with-xmlrpc --enable-ftp --with-gettext --enable-zip --enable-soap \ --disable-ipv6 --disable-debug make ZEND_EXTRA_LIBS='-liconv' service php-fpm stop make install
PHP 5.2
cd lnmp/src wget http://blog.linuxeye.com/wp-content/uploads/2015/05/php5.2patch cd php-5.2.17 patch -p1 < ../php5.2patch #通過phpinfo.php獲取./configure make ZEND_EXTRA_LIBS='-liconv' make install原文:http://blog.linuxeye.com/418.html