Ruby on rails 如何测试应用程序是否易受链轮漏洞的攻击?

Ruby on rails 如何测试应用程序是否易受链轮漏洞的攻击?,ruby-on-rails,security,sprockets,Ruby On Rails,Security,Sprockets,如果Rails应用程序易受链轮漏洞CVE-2018-3760的攻击,我应该运行什么web请求来测试 我已经做了必要的修改,应该使它不会出现这个问题,但是我想通过查看安全版本和非安全版本上发生的情况来测试它 我试过http://localhost:3000/assets/file:%2f%2f///Users/agrimm/rails/sprockets_replication/README.rdoc在使用Google Chrome的开发机器上以生产模式运行的示例Rails应用程序上,但即使使用不

如果Rails应用程序易受链轮漏洞CVE-2018-3760的攻击,我应该运行什么web请求来测试

我已经做了必要的修改,应该使它不会出现这个问题,但是我想通过查看安全版本和非安全版本上发生的情况来测试它

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


也没有给出如何测试漏洞的示例。

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

/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 
或者所有的资产文件夹宝石都不起作用

因此,您正在尝试的文件将不起作用,因为它将抛出一个错误
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并尝试再次访问同一地址后,您将看到一个页面,上面只显示
禁止
,没有其他内容


我在本地测试中得出的结论,以及这些说明,您可以测试作为问题目标的漏洞

您是否有
config.assets.compile=true
?测试中包含
get“资产/文件:%2f%2f//#{absolute_path}/foo.js”
,因此您使用该URL的路径看起来是正确的。@muistooshort是的,谢谢您的提问,并添加到问题中。谢谢。看起来我的问题的另一个因素是我使用了一个(非常)旧的Rails版本,出于某种原因,它似乎没有受到影响。我创建的复制也使用了旧版本的Rails。当我使用最新版本的Rails创建应用程序时,我能够重现该漏洞。