天天看點

nginx反向代理400繞過學習

昨天出了grafana的LFI

payload 

GET /public/plugins/welcome/../../../../../../../../etc/passwd HTTP/1.1
Host: localhost:3000
Connection: close      

當然payload的方法有很多,本文重點不在于payload。重點在于grafana或其他業務基本上都是通過nginx去進行反向代理出去的,是以通過nginx通路會傳回400。

nginx或者apache這些常見反向代理中間件會對url進行normalize的操作,簡單來說就是會在轉發前将'../'這些去掉,而當去掉後的路徑超出web根目錄的限制就會直接傳回400錯誤而不會把請求轉發到grafana,是以就會導緻複現失敗(引用公衆号:賽博回憶錄)

nginx 主要參考文章(https://www.codenong.com/cs110392483/)

是以漏洞稍微變得雞肋了一些,今天剛好在朋友圈看到chybeta發的nginx 400反代繞過,學習了一些姿勢,進行記錄

在payload加上,即可,個人感覺是讓nginx以為走前端路由,繞過了normalize(猜測,未實證)

/#/../      

學習一波,記錄一下,後續的其他payload構造還是有很大幫助的,

最後官網也臨時做了更新:

https://grafana.com/blog/2021/12/07/grafana-8.3.1-8.2.7-8.1.8-and-8.0.7-released-with-high-severity-security-fix/

也可以進行更新了

資料:

https://t.zsxq.com/I6ujE6q

https://mp.weixin.qq.com/s/dqJ3F_fStlj78S0qhQ3Ggw

【版權所有@Sevck 部落格位址http://www.cnblogs.com/sevck】 可以轉載,注明出處.

繼續閱讀