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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM