【问题标题】:How can I confirm that the Imagetragick vulnerability is fixed on heroku?如何确认 Imagetragick 漏洞已在 heroku 上修复?
【发布时间】:2016-05-11 22:57:51
【问题描述】:

我正在尝试向客户再次确认 Imagetragick 漏洞确实固定在 heroku 上。我不想仅仅相信heroku发表的声明是真的,我想确认一下自己。

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

heroku 的声明:https://devcenter.heroku.com/changelog-items/891

【问题讨论】:

    标签: ruby-on-rails security heroku imagemagick


    【解决方案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>
    

    【讨论】:

    • 如果我真的需要转换 https:// 图像位置怎么办?我正在尝试将规则覆盖为 rights="read | write" 但似乎 /etc/ImageMagick/policy.xml 中的默认策略具有更多先例
    • @MattKim 你明白了吗?遇到与 https 相同的问题...
    • 嘿@tehfailsafe 我刚刚结束了使用 aws 并启动了我自己的服务器。如果你有一个决心,我很想听听你做了什么!
    【解决方案2】:

    确认漏洞已修复的实际方法是在目标上执行 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
    

    【讨论】:

    • 我没有尝试过,但我不会在 heroku shell 中执行任何脚本。这专门用于在 heroku 而不是其他平台上进行验证。我同意这将是确认的理想方式,但我认为它不适用于 heroku。
    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2022-01-17
    • 2021-08-20
    • 2020-02-15
    • 2018-12-24
    相关资源
    最近更新 更多