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

本文阅读 3 分钟

Ruby on Rails(官方简称为 Rails,亦被简称为 RoR),是一个使用 Ruby 语言写的开源 Web 应用框架,它是严格按照 MVC 结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。

Rails 的设计原则包括 “不做重复的事”(Don’t Repeat Yourself)和 “惯例优于设置”(Convention Over Configuration).

控制器接受向应用发起的特定访问请求。路由决定哪些访问请求被哪些控制器接收。一般情况下,一个控制器会对应多个路由,不同路由对应不同动作。动作搜集数据并把数据提供给视图。视图以人类能看懂的格式显示数据。有一点要特别注意,数据是在控制器而不是视图中获取的,视图只是显示数据。默认情况下,视图模板使用 eRuby(嵌入式 Ruby)语言编写,经由 Rails 解析后,再发送给用户。

Rails框架是以固定的命名习惯来自动判断整个架构,默认下会将网址分析成 http://domain-name/ControllerName/ActionName/Attribute/ 然后执行目标Controller中的Action,并取出指定的View(视图)回传给浏览器显示。面对数据库则以Model(模组)的形式,借由Active Record作为与数据库之间的传输接口。

Ruby on Rails:控制器-路由-动作-视图。 Ruby on Rails使用了指定参数的render file来渲染应用之外的视图,且会根据用户传入的Accept头来确定文件具体位置。我们可以通过修改访问某控制器的请求包,通过../../../../来达到路径穿越的目的,然后再通过{ {来闭合模板查询路径,那我们访问的文件会被当做外部模板来解析。

影响版本:
    Rails 全版本。
修复版本:
    Rails 6.0.0.beta3、5.2.2.1、5.1.6.2、5.0.7.2、4.2.11.1。

访问http://your-ip:3000/robots可以正常访问robots.txt文件 修改Accept参数进行文件读取 img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/sycamorelg/article/details/121030013
-- 展开阅读全文 --
Web安全—逻辑越权漏洞(BAC)
« 上一篇 03-13
Redis底层数据结构--简单动态字符串
下一篇 » 04-10

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复