Ruby On Railds 路径遍历漏洞(CVE-2018-3760)
这篇文章介绍了Ruby on Rails框架中的Sprockets组件存在二次解码导致的路径遍历漏洞。攻击者可利用特定编码访问服务器敏感文件。文章详细描述了复现过程,包括环境搭建、构造URL路径及使用URL编码绕过安全限制,并强调了正确路径选择和编码技术的重要性。 2025-10-30 03:7:4 Author: www.freebuf.com(查看原文) 阅读量:4 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

1. 产品简介:

# Ruby On Rails 是著名的 Ruby Web 开发框架,它在开发环境中使用 Sprockets 作为静态文件服务器。Sprockets 是一个编译和分发静态资源文件的 Ruby 库。

2、漏洞介绍及受影响范围

# Sprockets 3.7.1及更低版本存在二次解码导致的路径遍历漏洞。攻击者可以%252e%252e/用来访问根目录并读取或执行目标服务器上的任何文件。

3、复现流程

(1)环境搭建:

# 这里推荐使用vulfocus靶场,或者有vulnhub的也可以直接启动环境,这里我们就有vulfocus来进行演示复现

(2)攻击流程:

1、根据提示的IP地址和端口在本机上面打开对应的环境

image.png

image.png

2、如上图所示即为Ruby on Rails的欢迎界面,可以进行记忆,毕竟经验就是这么来的吗(哈哈)

3、访问路径地址:端口/assets/file:%2f%2f/etc/passwd,可得允许访问的路径白名单

image.png

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  即可成功访问到目标文件夹

image.png

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

image.png

4、总结

1、要找对地方去进行遍历,如图本漏洞的file://以及后面的允许访问路径,表明功能的正常逻辑是允许去读设定目录下的文件,而我们也因此才能向上遍历,这里最容易犯的一个错误就是见到目录就遍历,结果当然是什么都访问不到,要根据功能去匹配漏洞。

2、掌握 URL编码绕过技术,当直接尝试不成,要尝试进行编码绕过

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/vuls/454918.html
如有侵权请联系:admin#unsafe.sh