Ruby on Rails路径穿越与任意文件读取漏洞

漏洞概述

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`:

 

原文地址:https://www.cnblogs.com/glowing-z/p/12625090.html