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

Nginx漏洞利用與安全加固

安全 網(wǎng)站安全
本文主要分為兩大部分,第一部分介紹了Nginx的一些常見安全漏洞的形成原因、利用方法,并給出了相應(yīng)的解決辦法;第二部分介紹了Nginx安全加固時(shí)需要關(guān)注的主要內(nèi)容。

本文主要分為兩大部分,第一部分介紹了Nginx的一些常見安全漏洞的形成原因、利用方法,并給出了相應(yīng)的解決辦法;第二部分介紹了Nginx安全加固時(shí)需要關(guān)注的主要內(nèi)容。

Nginx(發(fā)音同engine x)是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā),可以穩(wěn)定地運(yùn)行在Linux、Windows等操作系統(tǒng)上,其特點(diǎn)是占用內(nèi)存少,并發(fā)能力強(qiáng)。

同其他軟件一樣,Nginx也出現(xiàn)過一些安全漏洞,利用這些漏洞可以對Web服務(wù)器進(jìn)行滲透攻擊。

下面我們通過實(shí)例來介紹幾個(gè)關(guān)于Nginx的安全漏洞,以及相應(yīng)的漏洞利用方法。

Nginx漏洞分析實(shí)例

Nginx文件類型錯(cuò)誤解析漏洞

在2010年的時(shí)候,國內(nèi)安全組織80Sec發(fā)現(xiàn)了一個(gè)Nginx文件類型解析漏洞,但實(shí)際上這個(gè)并非Nginx本身的漏洞,而是由于配置導(dǎo)致的安全問題。下面我們詳細(xì)分析一下這個(gè)漏洞。

漏洞分析:Nginx默認(rèn)是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通過正則匹配設(shè)置SCRIPT_FILENAME。配置文件中會有類似如下內(nèi)容,如圖1所示。

 

 

圖1

location對請求進(jìn)行選擇的時(shí)候會使用URI環(huán)境變量進(jìn)行選擇,其中傳遞到后端Fastcgi的關(guān)鍵變量SCRIPT_FILENAME是由Nginx生成的$fastcgi_script_name來決定的。而通過分析可以看到$fastcgi_script_name是直接由URI環(huán)境變量控制的,這里就是產(chǎn)生問題的點(diǎn)。當(dāng)訪問http://192.168.1.103/phpinfo.jpg/1.php這個(gè)URL時(shí),$fastcgi_script_name會被設(shè)置為“phpinfo.jpg/1.php”,然后構(gòu)造成SCRIPT_FILENAME傳遞給PHP CGI,但是PHP為什么會接受這樣的參數(shù),并將phpinfo.jpg作為PHP文件解析呢?

這就要說到fix_pathinfo這個(gè)選項(xiàng)了,如圖2所示。

 

 

圖2

如果開啟了這個(gè)選項(xiàng),那么就會觸發(fā)在PHP中的如下邏輯,如圖3所示。

 

 

圖3

到這里,PHP會認(rèn)為SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就會將phpinfo.jpg作為PHP文件來解析了。

漏洞危害:利用該漏洞,攻擊者可以將任意文件類型作為PHP文件解析,攻擊者通常利用該漏洞來獲取到一個(gè)WebShell。

漏洞利用:假設(shè)某一服務(wù)器存在該漏洞,攻擊者可以通過上傳一張包含PHP后門代碼的圖片來獲取WebShell,這是一種常見的攻擊方式,如圖4所示。

 

 

圖4

解決方案:這里介紹兩種解決方案:一、修改php.ini文件,將cgi.fix_pathinfo的值設(shè)置為0;二、在Nginx配置文件中添加以下代碼:

if ( $fastcgi_script_name ~ \..*\/.*php ) {

return 403;

}

這行代碼的意思是當(dāng)匹配到類似test.jpg/a.php的URL時(shí),將返回403錯(cuò)誤代碼,如圖5所示。

 

 

圖5

Nginx配置錯(cuò)誤而導(dǎo)致目錄遍歷漏洞

在Nginx的配置文件中如果開啟了autoindex選項(xiàng),并采用類似下面的配置時(shí)會造成目錄遍歷漏洞,如圖6所示。

 

 

圖6

當(dāng)訪問http://192.168.1.103/test/這個(gè)URL時(shí),正常情況應(yīng)該遍歷html/test/這個(gè)目錄,但是如果訪問http://192.168.1.103/test../這個(gè)URL時(shí),則會遍歷上一級目錄(html/)了。

下面我們通過一個(gè)實(shí)例來演示下這個(gè)漏洞,先來看下正常訪問時(shí)返回的頁面,如圖7所示。

 

 

圖7

現(xiàn)在我們再來看下漏洞被觸發(fā)后返回的頁面,如圖8所示。

 

 

圖8

通過圖8所示的返回結(jié)果,我們可以看到利用該漏洞我們成功遍歷到了其上一級目錄。

下面提供兩種方法來解決這個(gè)問題,從中選擇一種即可,具體配置如下圖9所示。

 

 

圖9

現(xiàn)在我們再來驗(yàn)證下當(dāng)采用上面的代碼加固N(yùn)ginx以后,服務(wù)器是否還存在漏洞。

 

 

圖10

從圖10的返回結(jié)果可以看到漏洞沒有被觸發(fā),而是返回了404頁面,說明漏洞被修復(fù)。

Nginx安全加固

針對Nginx的安全加固,主要從以下兩個(gè)方面考慮:一、Nginx Web Server程序本身是否安全,如是否存在安全漏洞;二、Nginx Web Server是否提供了可使用的安全功能,這部分主要是檢查Nginx的配置是否得當(dāng),是否存在由于配置失誤導(dǎo)致的安全問題。

Nginx版本的選擇與安裝注意事項(xiàng)

在選擇Nginx版本時(shí),需要關(guān)注是否存在安全漏洞和版本的穩(wěn)定性。一般選擇最新的穩(wěn)定版本,這樣可以在穩(wěn)定性和安全之間取得一個(gè)平衡。在升級Nginx版本前建議先在測試環(huán)境中測試通過后再正式升級,以避免由于兼容性帶來其他不可預(yù)知的問題。

關(guān)于Nginx的安全漏洞可以關(guān)注Nginx官方發(fā)布的安全公告(http://nginx.org/en/security_advisories.html)或到其他一些漏洞發(fā)布平臺上查找。

在安裝Nginx時(shí)建議使用自定義安裝路徑,如果采用默認(rèn)安裝路徑,很容易被攻擊者和一些自動化攻擊工具猜測到,為其進(jìn)行下一步的攻擊提供便利。

Nginx安全配置

1. 修改/隱藏Nginx Banner信息

攻擊者在對目標(biāo)服務(wù)器進(jìn)行滲透攻擊前,通常會有一個(gè)目標(biāo)信息收集階段,這個(gè)階段的任務(wù)就是通過各種手段獲取到目標(biāo)服務(wù)器的信息,如獲取目標(biāo)服務(wù)器的系統(tǒng)版本、Web、數(shù)據(jù)庫的類型及相關(guān)信息,這個(gè)階段獲取到的信息將直接關(guān)系到攻擊者下一步采取的攻擊手段。因此,修改/隱藏Nginx的相關(guān)信息將在一定程度上可以增大攻擊者的攻擊難度,也可以騙過一些自動化攻擊工具。

在Linux平臺下以源碼方式安裝Nginx時(shí),可以通過修改“src/core/nginx.h”中的信息來達(dá)到隱藏或自定義Banner信息的目的。

我們先來看下nginx.h這個(gè)文件中默認(rèn)的內(nèi)容,類似圖11所示。

 

 

圖11

這時(shí)當(dāng)我們訪問Nginx服務(wù)器時(shí),Server字段會返回真實(shí)的Banner信息,如圖12所示。

 

 

圖12

現(xiàn)在我們來自定義nginx.h中關(guān)于Banner信息的內(nèi)容,可參考圖13。

 

 

圖13

修改完成后,重新編譯Nginx,然后安裝即可。安裝完成后,我們再來訪問下該Nginx服務(wù)器,發(fā)現(xiàn)這時(shí)Server返回的內(nèi)容為自定義的Banner信息了,如圖14所示。

 

 

圖14

2. Nginx日志安全

不論在那種服務(wù)器上,日志都是一個(gè)非常重要的部分,我們需要對它嚴(yán)加保護(hù)。在Nginx上也是如此。Nginx的日志默認(rèn)存放在安裝目錄的logs目錄下,首先要修改日志的默認(rèn)保存路徑,然后設(shè)置只允許管理員有日志存放目錄的完全控制權(quán)限。

3. Nginx權(quán)限設(shè)置

Nginx權(quán)限設(shè)置分為Nginx運(yùn)行權(quán)限設(shè)置和網(wǎng)站目錄權(quán)限設(shè)置兩部分。

Nginx運(yùn)行權(quán)限是指Nginx以什么權(quán)限運(yùn)行,以管理員權(quán)限運(yùn)行是一個(gè)非常糟糕的決定。這樣的后果是攻擊者一旦攻擊成功,將直接獲取到一個(gè)高權(quán)限的WebShell。因此,我們需要設(shè)置Nginx以一個(gè)低權(quán)限的身份運(yùn)行,可通過修改“Nginx.conf”這個(gè)配置文件來實(shí)現(xiàn)。

網(wǎng)站目錄權(quán)限設(shè)置則要遵循以下原則:

a) 如果目錄有寫入權(quán)限,一定不要分配執(zhí)行權(quán)限

b) 如果目錄有執(zhí)行權(quán)限,一定不要分配寫入權(quán)限

c) 網(wǎng)站上傳目錄和數(shù)據(jù)庫目錄一般需要分配“寫入”權(quán)限,但一定不要分配執(zhí)行權(quán)限

d) 其他目錄一般只分配“讀取”權(quán)限即可

責(zé)任編輯:藍(lán)雨淚 來源: 紅黑聯(lián)盟
相關(guān)推薦

2017-03-15 10:00:15

2017-02-06 10:10:34

2023-06-04 00:06:27

2024-05-30 17:43:38

2011-07-29 10:46:44

2012-12-26 13:00:55

2021-07-09 11:29:27

Kaseya漏洞攻擊

2011-01-14 09:42:29

2018-01-26 10:49:19

2017-08-22 13:45:27

2020-10-13 11:27:51

漏洞

2012-08-01 09:12:46

2021-08-12 10:31:59

MySQL安全方法

2019-08-26 00:30:48

2009-12-10 16:02:38

2010-01-03 20:52:27

2014-10-08 09:25:30

2013-11-18 09:44:02

2024-05-08 15:30:29

2009-06-24 14:56:00

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 日本粉嫩一区二区三区视频 | 三级免费av| 精品久久久久久亚洲综合网站 | 狠狠做深爱婷婷综合一区 | 国产综合视频 | 国产亚洲一区二区精品 | 欧美性乱 | 国产精品久久久久永久免费观看 | 九九热这里只有精品在线观看 | 国产91中文 | 日本人和亚洲人zjzjhd | 一区二区国产精品 | 在线视频国产一区 | 伊人婷婷| 日本一二区视频 | 亚洲在线免费观看 | 成人在线精品 | 国产成人精品一区二区三区在线 | 国产成人精品久久二区二区91 | 国产精品久久久久久久久久 | a级黄色片在线观看 | 亚洲免费大片 | 日韩高清中文字幕 | 日韩精品一区二区三区免费视频 | 激情欧美一区二区三区中文字幕 | 亚洲精品成人在线 | 91人人爽 | 国产精品久久久久久久久久久新郎 | 欧美国产一区二区三区 | 久久国产精99精产国高潮 | 午夜精品久久久久久不卡欧美一级 | 国产一区二区三区在线 | 日韩成人精品一区二区三区 | 精精国产xxxx视频在线播放 | 韩日在线观看视频 | 国产欧美日韩精品一区二区三区 | 日韩网站在线 | 国产一区二区三区四区区 | 看av片网站| 欧美一级片在线观看 | 久色 |