nginx目錄遍歷漏洞

https://www.freebuf.com/articles/web/149761.html

nginx作為下載文件服務器

server {
        listen       8082;        #端口
        server_name  localhost;   #服務名
        root    /dev/shm/update;  #顯示的根索引目錄
        autoindex on;             #開啟索引功能
        autoindex_exact_size off; # 關閉計算文件確切大?。▎挝籦ytes),只顯示大概大?。▎挝籯b、mb、gb)
        autoindex_localtime on;   # 顯示本機時間而非 GMT 時間
}
或者
server {
        listen       8082;        #端口
        server_name  localhost;   #服務名
      location / { 
           root    /dev/shm/update;  #顯示的根索引目錄
          autoindex on;             #開啟索引功能
          autoindex_exact_size off; # 關閉計算文件確切大小(單位bytes),只顯示大概大小(單位kb、mb、gb)
          autoindex_localtime on;   # 顯示本機時間而非 GMT 時間

    } 
}

nginx目錄遍歷漏洞

http://ip:8082/ ,顯示/dev/shm/update/目錄下所有文件,說明存在漏洞
解決:
autoindex off,重啟nginx后
http://ip:8082/ 就不顯示目錄下的文件

ngnix 漏洞:任意文件讀取

這個常見于Nginx做反向代理的情況,動態(tài)的部分被proxy_pass傳遞給后端端口,而靜態(tài)文件需要Nginx來處理。假設靜態(tài)文件存儲在/home/目錄下,而該目錄在url中名字為files,那么就需要用alias設置目錄的別名:

location /files {
    alias /home/;
}

此時訪問http://127.0.0.1:8080/files/1.txt,就可以獲取/home/1.txt 文件。
我們發(fā)現(xiàn),url上/files沒有加后綴/ ,而alias設置的/home/是有后綴/的,這個 /就導致我們可以從/home/目錄穿越到他的上層目錄,造成任意文件下載:
http://127.0.0.1:8080/files../etc/hosts
修復方法:不寫成上面那種有漏洞的形式,比如可以寫成結(jié)尾都帶著/字符。

location /files/ {
    alias /home/;
}

0x01$uri導致的CRLF注入

在實際業(yè)務場景中經(jīng)常需要在nginx中配置路徑跳轉(zhuǎn)。

比如用戶訪問http://x.com 自動跳轉(zhuǎn)到https://x.com 或者是訪問 http://x.com 自動跳轉(zhuǎn)到 http://www.x.com

在跳轉(zhuǎn)的過程中,我們需要保證用戶訪問的頁面不變,所以需要從Nginx獲取用戶請求的文件路徑,有三個可以表示uri的變量:

$uri
$document_uri
$request_uri

uri 和document_uri表示的是解碼以后的請求路徑,不帶參數(shù),$request_uri表示的是完整的URI(沒有解碼),如果在nginx.conf中配置了下列的代碼:

location /test {
             return 302 http://$host:81$uri;
                 }

因為$uri是解碼以后的請求路徑,所以可能就會包含換行符,也就造成了一個CRLF注入漏洞
該漏洞除了發(fā)生在 return后面,也可能發(fā)生在rewrite、add_header、p roxy_set_header、proxy_pass之后。

修復方式:將uri或者document_uri改為 $request_uri。

alias/root 區(qū)別使用

https://blog.csdn.net/zhuchunyan_aijia/article/details/53033050

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容