CVE-2018-3760漏洞复现(任意文件读取)
0x00 漏洞介绍
Ruby On Rails是一个著名的Ruby Web开发框架,它使用链轮作为开发环境中的静态文件服务器。Sprockets是一个编译和分发静态资源文件的Ruby库。
在Ruby 3.7.1和更低版本中,存在由辅助解码引起的路径遍历漏洞。攻击者可以使用%252e%252e/访问根目录并读取或执行目标服务器上的任何文件。
0x01漏洞原理
问题出在sprockets,它用来检查 JavaScript 文件的相互依赖关系,用以优化网页中引入的js文件,以避免加载不必要的js文件。
当访问如http://127.0.0.1:3000/assets/foo.js时,会进入server.rb:
rorbidden_request用来对path进行检查,是否包含…以防止路径穿越,是否是绝对路径:
0x02影响版本
4.0.0.beta7及更低版本
3.7.1及更低版本
2.12.4及更低版本。