如何测试应用是否容易受到链轮漏洞的攻击?

时间:2018-06-25 22:37:47

标签: ruby-on-rails security sprockets

我应该运行哪个Web请求来测试Rails应用程序是否容易受到链轮漏洞CVE-2018-3760的攻击?

我已经进行了必要的更改,以确保从此问题开始可以安全使用,但是我想通过查看安全版本和非安全版本上发生的情况来对其进行测试

我在使用Google Chrome的开发机器上以生产模式运行的示例Rails应用程序上尝试了http://localhost:3000/assets/file:%2f%2f///Users/agrimm/rails/sprockets_replication/README.rdoc,但是即使链轮版本不安全且其中的config.assets.compile = true也无法检索文件production.rb。 (如果Web请求的路径错误,我不会感到惊讶-这有点大胆的猜测)

https://blog.heroku.com/rails-asset-pipeline-vulnerabilityhttps://groups.google.com/forum/#!topic/rubyonrails-security/ft_J--l55fM均未提供有关如何测试漏洞的示例。

1 个答案:

答案 0 :(得分:4)

请记住,这适用于资产,因此请尝试使用资产文件夹之外的文件,例如

/path/to/project/folder/app/assets/config 
/path/to/project/folder/app/assets/images 
/path/to/project/folder/app/assets/javascripts 
/path/to/project/folder/app/assets/stylesheets 
/path/to/project/folder/vendor/assets/javascripts 
/path/to/project/folder/vendor/assets/stylesheets 

或所有资产文件夹的gem无法正常工作。

因此您尝试的那个将无法运行,因为它将抛出错误Sprockets::FileOutsidePaths,它甚至会识别出该文件存在,因为如果您在日志中看到该文件,便会出现

Sprockets::FileOutsidePaths (/path/to/project/folder/README.md is no longer under a load path)

,如果不存在,则会显示错误

Sprockets::FileNotFound (could not find file)

所以您走在正确的道路上,但是需要尝试在列出的那些文件夹中使用资产文件,例如:

localhost:3000/assets/file:%2f%2f///path/to/project/folder/app/assets/stylesheets/devise.css

与此相关,您将看到浏览器返回的资产。

然后使用config.assets.compile = true将gem链更新为3.7.2,并尝试再次访问相同的地址后,您会看到一个页面,上面仅显示forbidden,没有其他内容。

那些我在本地所做的测试的结论所在,并根据这些说明可以测试作为问题目的的漏洞