NGINX 類漏洞 整理記錄

2022-03-08 08:28:28 字數 3062 閱讀 1373

影響版本:nginx 0.8.41~1.4.3 / 1.5.0~1.5.7

漏洞原理:主要原因是nginx錯誤的解析了請求的uri,比如說下面這個模組,nginx會匹配以|.php|結尾的請求,傳送給fastcgi(乙個ong-live型cgi,啟用後不用每次都fork,減少記憶體消耗)。而存在文 件名漏洞時,1.jpg[0x20][0x00].php會匹配為php檔案(0x20為空格,0x00是null,查詢ascii表)但進入該模組後,因為1.jpg後是空格,會被設定為script_filename的值被傳送到fastcgi解析。就完成了一次錯誤的解析。

location ~\.php$
小擴充套件:很多**限制了允許訪問後台的ip,那麼在請求時可以這麼請求/test[0x20]/../admin/index.php,前提是有test這個資料夾

漏洞復現:

可以看到,1.jpg的內容成功被php解析。

漏洞原理:

該漏洞與nginx,php的版本無關,這是由於 php 中的選項 cgi.fix_pathinfo 預設值為1,表示開啟;nginx看到.php結尾的檔案就交給php處理,而不先判斷檔案是否存在,這一點iis與nginx是一樣的。

漏洞復現:

影響版本:0.5.*, 0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37

漏洞原理:php-fastcgi在執行php檔案時,url在處理%00空位元組時 與fastcgi處理不一致,使得我們在其他檔案中插入php**,訪問url+%00.php即可執行其中的php**。

漏洞詳情:

在nginx作為反向**伺服器,且開啟了快取時,攻擊者可以構造惡意的range域,來獲取相應伺服器中的快取檔案頭部資訊,導致敏感的伺服器資訊洩露。

對range域的詳情感興趣的可參見:介紹的很詳細

影響版本:nginx version 0.5.6 - 1.13.2

漏洞復現:

漏洞介紹:crlf是「\r\n」的簡稱,即回車+換行的意思。在http協議裡,http頭部和http正文是用兩個crlf分割的,惡意的注入http返回包頭部,即是crlf注入漏洞。這也叫http response splitting ,簡稱hrs。

漏洞復現:這裡搭建了乙個簡單的靶機環境,錯誤配置示例如下,傳入的 %oa%0d 會被uri解碼為 \r\n 。

漏洞介紹:nginx在配置別名(alias)時,將「/files」 等同為「/home/」,可以看到這裡多了乙個「/」,這個就導致可從/home/目錄穿越到他的上層目錄,即 /files../ == /home/../  ,其錯誤配置示例如下:

漏洞復現:

錯誤配置如圖所示:

漏洞原理:

1. add_header是headers模組中定義的乙個指令,用來新增http響應頭部。格式如:add_header cache-control no-store

2. nginx是分層級組織的,每層可以有自己的指令,子塊繼承父塊的配置;但對於相同指令,子塊的配置可以覆蓋掉父塊的配置。

4.在上圖錯誤示例中,server塊配置為:

add_header content-security-policy "default-src 'self'";     ===>  使頁面只能載入同源資源,且禁止內聯**執行。

add_header x-frame-options deny;    ===>    使頁面中不能被放在iframe框架中,避免被用作點選劫持。

但是location = /test2 子塊中,add_header 被重新配置了,這個會覆蓋父塊的配置,所以在/test2 頁面下沒有做安全限制。

以上內容是提取出來與此漏洞有關的,要詳細了解的請參見:

add_header :

csp:

x-frame-options:

漏洞復現:

本文涉及的漏洞分為三大類

快取讀取漏洞:cve-2017-7529 

版本配置錯誤漏洞:

漏洞復現 Nginx解析漏洞

該漏洞與nginx php版本無關,屬於使用者配置不當造成的解析漏洞。漏洞的本質實際上就是由於fcgi和web server對script路徑級引數的理解不同出現的問題,這是典型的因為跨系統語境不同導致對同乙個請求的不同解釋導致的漏洞。vulhub下環境搭建 2.瀏覽器訪問指定url http 19...

nginx常見漏洞

cd vulhub master nginx cve 2013 4547 docker compose build docker compose up d 錯誤地獲取到使用者請求的檔名,導致出現許可權繞過 執行的連帶影響 cd vulhub master nginx cve 2017 7529 do...

Nginx 解析漏洞復現

該漏洞與nginx php版本無關,屬於使用者配置不當造成的解析漏洞 1 由於nginx.conf的如下配置導致nginx把以 php 結尾的檔案交給fastcgi處理,為此可以構造http ip uploadfiles test.png php url結尾不一定是 php 任何伺服器端不存在的ph...