1. 程式人生 > >Nginx敏感信息泄露漏洞(CVE-2017-7529)

Nginx敏感信息泄露漏洞(CVE-2017-7529)

泄露 內存 構造 一次 .com openss erro 這樣的 技術

2017年7月11日,為了修復整數溢出漏洞(CVE-2017-7529), Nginx官方發布了nginx-1.12.1 stable和nginx-1.13.3 mainline版本,並且提供了官方patch。

當使用Nginx並且開啟緩存功能時,攻擊者可以構造特定header頭字段,能越界讀取到緩存文件的文件頭信息。文件頭信息中可能會包含Nginx代理站點的真實IP,造成敏感信息泄露。

另外,一些第三方模塊可能會因此導致拒絕服務或者當前進程的內存泄漏,但Nginx官方暫未發現這樣的第三方模塊。

此漏洞涉及了nginx 0.5.6 - 1.13.2全版本

此漏洞需要在Nginx用作代理緩存的情況下才能觸發,如基於Nginx的CDN服務等。

修復方式:

1、升級Nginx到最新無漏洞版本,當前1.13.3,1.12.1版本中已修復了這個問題。
2、臨時方案:配置 max_ranges 1;
3、使用百度雲加速WAF防火墻進行防禦。
4、添加網站至安全指數,及時了解網站組件突發/0day漏洞。

本篇隨筆采用第一種修復方式修復此漏洞

從官網上下載nginx-1.13.3.tar.gz,然後上傳到centos7服務器

解壓nginx-1.13.3.tar.gz

tar zxvf nginx-1.13.3.tar.gz

進入nginx-1.13.3目錄

cd nginx-1.13.3

查看nginx原來的配置

nginx -V

技術分享

執行configure命令,後面跟上原來nginx的配置

技術分享

報錯

技術分享

改為(有關dynamic去掉)

在執行一次

技術分享

這次沒有提示error, 執行make令命編譯nginx, 編譯好以後objs目錄下多出一個nginx文件,這個就是已編輯好的nginx程序

在執行configure時可能碰到的幾個錯誤:

1. rewrite需要pcre支持, 錯誤提示:./configure: error: the HTTP rewrite module requires the PCRE library.

yum -y install pcre-devel

2.openssl導致的錯誤

yum -y install openssl openssl-devel 

執行make令命編譯nginx, 編譯好以後objs目錄下多出一個nginx文件,這個就是已編輯好的nginx程序

make

更改舊的nginx程序的名子,並復制新的程序過去,我的舊nginx程序放在/usr/sbin/目錄中

mv /usr/sbin/nginx /usr/sbin/nginx-bak
cp objs/nginx /usr/sbin/nginx
/usr/sbin/nginx -t

執行下面的命令來升級nginx

make upgrade

技術分享

查看nginx版本

nginx -V

技術分享

Nginx敏感信息泄露漏洞(CVE-2017-7529)