(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

漏洞简介:

Ruby on Rails是一个web应用程序框架,是相对较新的web应用程序框架
构建在Ruby语言上

威胁类型

远程代码执行,任意文件读取

威胁等级

漏洞编号

CVE-2019-5418

受影响系统及应用版本

Rails全版本
其中修复版本
6.0.0.beta3,
5.2.2.1
5.1.6.2
5.0.7.2
4.2.11.1

漏洞复现:

1、搭建环境

Ruby On Rails环境建设
1、安装git
(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现
2、安装rbenv到〜/ .rbenv目录
(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现
3、安装rbenv的插,用于编译安装ruby

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

4、用来管理 gemset, 可选, 因为有 bundler 也没什么必要

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

5、通过 gem 命令安装完 gem 后无需手动输入 rbenv rehash 命令
(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

6、通过 rbenv update 命令来更新 rbenv 以及所有插件

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

7、使用 Ruby China 的镜像安装 Ruby, 国内用户推荐

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

8、然后需要将下面两句代码放在bash的配置文件中:
(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

9、执行下面的命令使其生效

source ~/.bashrc

10、安装ruby

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

在demo路径下执行“rails s”,开启服务
指定9876端口

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

访问“chybeta”路径:
(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

我们使用浏览器自带的开发者工具进行漏洞复现,按“f12”打开工具,修改这条请求,修改内容如下:

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现
(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

漏洞复现成功,成功读取到passwd文件的内容:

(CVE-2019-5418)Ruby on Rails路径穿越与任意文件读取漏洞复现

2、修复建议

使用已经修复该漏洞的版本

参考链接:https://www.sohu.com/a/306334931_354899

ps:参考链接这篇文章讲解的非常细,对我在本漏洞复现过程中的理解有很大帮助,先给大佬跪了。