rails doubletap RCE (CVE-2019-5418 & CVE-2019-5420) 代码审计分析 + 复现
复现环境
官方源码下载(rails 5.2.1)
环境: Ubuntu 18.04.6 LTS + Rails 5.2.1 + ruby 2.5.1
rails doubletap RCE (CVE-2019-5418 & CVE-2019-5420) 代码审计分析 + 复现
漏洞描述
rails doubletap RCE 由以下两个漏洞组合成:
- CVE-2019-5418
Ruby on Rails(或者简称 Rails)是一个 Web 开发框架,使用 Ruby 编程语言开发。而2018主要是由于rails使用Sprockets作为静态文件服务器,在 Sprockets 3.7.1及之前版本中存在一个两次解码的路径穿越漏洞。而2019则主要是由于使用了为指定参数的render file来渲染应用之外的视图,修改访问某控制器的请求包,通过”../../../../“来达到路径穿越,再通过2个”{“来进行模板查询路径的闭合,使得所要访问的文件被当做外部模板来解析。
- CVE-2019-5420
Rails < 5.2.2.1, < 6.0.0.beta3 的远程代码执行漏洞, 允许攻击者猜测自动生成的开发模式secret token。这个secret token可以与其他Rails内部相结合,用来升级到远程代码执行exploit。