一.漏洞介绍
Ruby on Rails[1]是一套使用 Ruby 开发的,非常有生产力、维护性高、容易布署的Web 开发框架,是全世界 Web 应用程式开发的首选框架之一。
每获取一个请求,Ruby On Rails就会使用Render file(没有指定参数)的渲染模式来渲染目标。这样就会在我们攻击的时候,将目标文件当做模板来渲染,然后返回给浏览器。
在控制器中通过render file形式来渲染应用之外的视图,且会根据用户传入的Accept头来确定文件具体位置。我们通过传入Accept: …/…/…/…/…/…/…/…/etc/passwd{{头来构成构造路径穿越漏洞,读取任意文件。
(通过“…/…/…/…/”来达到路径穿越的目的,然后再通过“{{”来进行模板查询路径的闭合,使得所要访问的文件被当做外部模板来解析。)
二.漏洞复现
复制vulfcus靶场中文件中的ip地址

访问chybeta文件进行抓包
将抓包得到的accept数据包进行修改为以下内容
Accept: ../../../../../../../../etc/passwd{{
漏洞复现成功,成功读取到passwd文件的内容:

本文介绍了一个存在于Ruby on Rails中的路径穿越漏洞,该漏洞允许攻击者通过构造特定的HTTP请求头来读取服务器上的任意文件。文章详细解释了漏洞原理,并演示了如何利用此漏洞读取/etc/passwd文件。
439

被折叠的 条评论
为什么被折叠?



