Ruby On Rails 路径穿越与任意文件读取漏洞(CVE-2018-3760、CVE-2019-5418)

Ruby On Rails 路径穿越与任意文件读取漏洞(CVE-2018-3760、CVE-2019-5418)

	"你知道深爱是什么感觉吗?" "就像房间突然黑了,我不是去找灯而是去找他。"

漏洞概述:

Ruby on Rails(或者简称 Rails)是一个 Web 开发框架,使用 Ruby 编程语言开发。而2018主要是由于rails使用Sprockets作为静态文件服务器,在 Sprockets 3.7.1及之前版本中存在一个两次解码的路径穿越漏洞。而2019则主要是由于使用了为指定参数的render file来渲染应用之外的视图,修改访问某控制器的请求包,通过“…/…/…/…/”来达到路径穿越,再通过“{{”来进行模板查询路径的闭合,使得所要访问的文件被当做外部模板来解析。

漏洞复现:

  1. CVE-2018-3760
    首先启动

    在assets目录进行文件读取file:///etc/passwd,进行一次url编码,file:%2f%2f/etc/passwd
    在这里插入图片描述

    然后选下如下任意目录,利用…/读取etc/passwd,这里需url编码为%2e,然后二次编码为%252e,即%252e%252e/
    在这里插入图片描述可以成功穿越。
    在这里插入图片描述

  2. CVE-2019-5418
    上一个版本漏洞已经修复,正所谓旧的不去新的不来。
    在这里插入图片描述修改Accept:../../../../../../../../etc/passwd{{
    在这里插入图片描述 即可成功读取。
    在这里插入图片描述

漏洞修复:

  1. 打补丁,升级
  2. 禁止接受accept恶意的type

ps:萌新一枚,余生很长,请多指教。
在这里插入图片描述

发布了41 篇原创文章 · 获赞 24 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/csacs/article/details/89556526