1. 产品简介:
# Ruby On Rails 是著名的 Ruby Web 开发框架,它在开发环境中使用 Sprockets 作为静态文件服务器。Sprockets 是一个编译和分发静态资源文件的 Ruby 库。
2、漏洞介绍及受影响范围
# Sprockets 3.7.1及更低版本存在二次解码导致的路径遍历漏洞。攻击者可以%252e%252e/用来访问根目录并读取或执行目标服务器上的任何文件。
3、复现流程
(1)环境搭建:
# 这里推荐使用vulfocus靶场,或者有vulnhub的也可以直接启动环境,这里我们就有vulfocus来进行演示复现
(2)攻击流程:
1、根据提示的IP地址和端口在本机上面打开对应的环境


2、如上图所示即为Ruby on Rails的欢迎界面,可以进行记忆,毕竟经验就是这么来的吗(哈哈)
3、访问路径地址:端口/assets/file:%2f%2f/etc/passwd,可得允许访问的路径白名单

4、如上图所示,告诉我们/etc/passwd不在允许访问路径下,并给出了可访问路径
5、直接将可访问路径进行拼接,然后使用 ../ 来进行目录回溯,来进行访问
访问地址 : /assets/file:%2F%2F/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd 即可成功访问到目标文件夹

补充:当直接加上 ../ 时,就会出现如下图,所以要进行URL编码才行,包括
file:// 后面这两个斜杠也要进行编码

4、总结
1、要找对地方去进行遍历,如图本漏洞的file://以及后面的允许访问路径,表明功能的正常逻辑是允许去读设定目录下的文件,而我们也因此才能向上遍历,这里最容易犯的一个错误就是见到目录就遍历,结果当然是什么都访问不到,要根据功能去匹配漏洞。
2、掌握 URL编码绕过技术,当直接尝试不成,要尝试进行编码绕过
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



