漏洞概述
CVE-2019-5418
Ruby on Rails一套使用 Ruby 开发的,非常有生产力、维护性高、容易布署的Web 开发框架,是全世界 Web 应用程式开发的首选框架之一。
在控制器中通过`render file`形式来渲染应用之外的视图,且会根据用户传入的Accept头来确定文件具体位置。我们通过传入`Accept: ../../../../../../../../etc/passwd{{`头来构成构造路径穿越漏洞,读取任意文件。
影响版本
Rails 6.0.0.beta3,5.2.2.1,5.1.6.2,5.0.7.2,4.2.11.1
搭建环境
使用vulhub搭建
git clone https://github.com/vulhub/vulhub.gitcd /vulhub/rails/CVE-2019-5418docker-compose up -d
完成之后访问IP:3000
访问http://192.168.2.144:3000/robots 正常的robots.txt文件被读取出来。
请求robots,Burp抓包
利用漏洞,修改Accept参数为任意文件地址,发送如下数据包,读取`/etc/passwd`: