如何确认在heroku上修复了Imagetragick漏洞?

时间:2016-05-11 22:57:52

标签: ruby-on-rails security heroku imagemagick

我正在尝试双重确认一个客户,Imagetragick vuln确实固定在heroku上。我不想仅仅相信heroku发布的陈述是真的,我想证实自己。

我在rails应用程序上使用mini_magick和carrierwave,但这适用于使用imagemagick(paperclip等等)的任何设置

heroku的陈述:https://devcenter.heroku.com/changelog-items/891

2 个答案:

答案 0 :(得分:1)

事实证明,通过查看heroku服务器上的policy.xml文档来确认它相对容易。唯一有趣的是知道在哪里看。所以请执行以下操作(请记住,您处于生产环境中,因此不要编辑任何文件;最终它们会被覆盖):

heroku run bash [-a] [app name if needed]

find / | grep "policy.xml" (not really necessary, just showing my work)

cat /etc/ImageMagick/policy.xml

它应显示以下内容:

<policymap>
  <policy domain="coder" rights="none" pattern="EPHEMERAL" />
  <policy domain="coder" rights="none" pattern="URL" />
  <policy domain="coder" rights="none" pattern="HTTPS" />
  <policy domain="coder" rights="none" pattern="MVG" />
  <policy domain="coder" rights="none" pattern="MSL" />
  <policy domain="coder" rights="none" pattern="TEXT" />
  <policy domain="coder" rights="none" pattern="SHOW" />
  <policy domain="coder" rights="none" pattern="WIN" />
  <policy domain="coder" rights="none" pattern="PLT" />
</policymap>

然后您可以根据修复确认:

https://imagetragick.com/

以下内容:

<policymap>
  <policy domain="coder" rights="none" pattern="EPHEMERAL" />
  <policy domain="coder" rights="none" pattern="URL" />
  <policy domain="coder" rights="none" pattern="HTTPS" />
  <policy domain="coder" rights="none" pattern="MVG" />
  <policy domain="coder" rights="none" pattern="MSL" />
  <policy domain="coder" rights="none" pattern="TEXT" />
  <policy domain="coder" rights="none" pattern="SHOW" />
  <policy domain="coder" rights="none" pattern="WIN" />
  <policy domain="coder" rights="none" pattern="PLT" />
</policymap>

答案 1 :(得分:0)

确认漏洞已修复的实际方法是在目标上执行POC漏洞利用。官方公开here还显示了一种通过在终端中执行以下命令来轻松测试服务器的方法。

git 应安装在服务器上或手动下载git的内容。)

<强>命令

git clone https://github.com/ImageTragick/PoCs
cd PoCs
chmod +x test.sh && ./test.sh

安全输出

此输出表示您的服务器不再容易受到攻击。

user@host:~/code/PoCs$ ./test.sh 
testing read
SAFE

testing delete
SAFE

testing http with local port: 38663
SAFE

testing http with nonce: a7DyBeV7
SAFE

testing rce1
SAFE

testing rce2
SAFE

testing MSL
SAFE

不安全的输出

如果您在输出中的任何位置看到 UNSAFE 字,您的服务器仍然容易受到攻击。

user@host:~/code/PoCs$ ./test.sh 
testing read
UNSAFE

testing delete
UNSAFE

testing http with local port: 44755
UNSAFE

testing http with nonce: a7DvBer2
UNSAFE

testing rce1
UNSAFE

testing rce2
UNSAFE

testing MSL
UNSAFE