欢迎访问宙启技术站
智能推送

Ruby On Rails漏洞cve-2019-5418复现怎么进行

发布时间:2023-05-15 09:19:40

Ruby On Rails是一种开放源代码的Web应用框架,它是以Ruby编程语言编写的。Ruby On Rails漏洞cve-2019-5418是在2019年3月份发现的一种漏洞,它涉及了Ruby On Rails默认配置下对于文件的处理方式,攻击者可以利用该漏洞向Web应用程序输入恶意代码,从而导致服务器被攻击者远程控制的状况。本文会介绍漏洞的复现过程及注意事项。

1、搭建测试环境

首先需要在本地建立一个测试环境,可以使用如下命令来进行安装:

- 安装Ruby:使用rbenv或rvm等方式安装Ruby环境,版本使用2.3或者2.4,可以使用以下命令安装:

   rbenv install 2.3.8

   rbenv global 2.3.8

- 安装Rails:使用gem命令安装Rails,版本大于等于4.2.0,下面是安装过程:

   gem install rails

- 创建一个项目

在本地创建一个新的Rails项目,在终端输入如下命令:

   rails new rails-cve-2019-5418

2、复制漏洞代码

将漏洞对应的代码复制到你的Rails项目中,使用以下命令来进行克隆:

   git clone https://github.com/mpgn/rails-cve-2019-5418.git

然后在项目中将文件复制到public文件夹中。

3、修改配置文件

修改config/environments/development.rb配置文件中的代码,添加如下内容:

config.public_file_server.enabled = true

config.public_file_server.headers = {

  'Cache-Control' => 'public, max-age=31536000'

}

这里的目的是使public目录下的静态文件可以直接访问,同时添加缓存控制HTTP头。

4、启动服务器

使用如下命令启动服务器:

   rails s

浏览器中输入http://localhost:3000/images/../config/database.yml即可访问到config/database.yml文件,表示漏洞已经被利用成功。

5、防御措施

- 及时升级Ruby On Rails

漏洞是由于Ruby On Rails的默认配置所导致的,强烈建议对应的Ruby On Rails框架进行更新。

- 检查服务器配置

检查服务器配置中是否开启了默认开放文件权限,若是可以在服务器配置中加上相应的文件访问限制规则。

- 对用户的输入进行严格过滤

对于用户输入的任何数据,都要进行严格的过滤和检查,用户在进行上传文件时,可以对上传文件的类型进行限制,以保证上传文件不会成为攻击的载体。

总结:通过本文的介绍,大家应该已经了解了如何进行CVE-2019-5418的漏洞复现,同时在您的应用程序中尽量避免上述漏洞出现。