前言

我相信很多人都知道ImageMagick和它存在的漏洞,这个漏洞发现于2016年四月底,同时,由于许多插件都依赖于这个ImageMagick库,因此,这个漏洞的影响范围很大。有证据表明,关于这个漏洞的信息,发现它的研究人员是知道的,ImageMagick开发团队的人也知道,但是,糟糕的是,一些其它的人(坏人)也知道了这个漏洞,在2016年5月3日,在互联网上发现了这个漏洞的POC。许多研究人员发现了这个问题,而且应用程序还没有及时更新。但由于一些未知的原因,我不在其中,但这是在5月份。

漏洞分析

直到十月的一个星期六,我对一些大的服务(不是Facebook)进行了测试,当时一些重定向让我关注到了Facebook。这是一个《分享到Facebook》对话框:

链接是:

https://www.facebook.com/dialog/feedapp_id=APP_ID&link=link.example.tld&picture=http%3A%2F%2Fattacker.tld%2Fexploit.png&name=news_name&caption=news_caption&description=news_descriotion&redirect_uri=http%3A%2F%2Fwww.facebook.com&ext=1476569763&hash=Aebid3vZFdh4UF1H

大家可以看到,如果我们仔细看,我们可以看到在URL中有一个“picture”参数。但是在上面提到的页面内容中,这并不是图片URL,例如:

https://www.google.com/images/errors/robot.png

变成了:

https://external.fhen11.fna.fbcdn.net/safe_image.phpd=AQDaeWq2Fn1Ujs4P&w=158&h=158&url=https%3A%2F%2Fwww.google.com%2Fimages%2Ferrors%2Frobot.png&cfs=1&upscale=1&_nc_hash=AQD2uvqIgAdXgWyb

我首先考虑到了一些关于SSRF的问题。但是测试显示,这个URL中的参数请求来自于31.13.97.*网络,通过“facebookexternalhit/1.1”参数,如下:

它看起来像独立服务器的正常请求。我开始深入挖掘。在对这个参数进行一些测试后,我很失望,没有一个成功,ImageTragick是最后一点希望。如果你不熟悉这个问题或有点懒惰,这里有一POC链接。下面是一个简单的exploit.png载荷:

但是当我监听端口时,什么也没发现:

不过,如果有一些防火墙限制呢?-我问我自己。

好吧,通常一些公司会过滤正常的请求,但是不会过滤DNS,让我们再试一个载荷:

结果是:

这个IP是谁的呢?看下图:

成功了!

让我们总结一下,应用程序的工作流程是:

获得“picture”参数,并向它发出请求,这个请求是正常的,没有漏洞。

收到一个图片,这个图片经过了converter的转换,而它使用了有漏洞的ImageMagick库。

说实话,我试图找到一个通用的方法来利用这个HTTP请求,但是经过简短的测试后,我发现所有向外的端口都被关闭了,我花了很长的时间去找一个能打开的,没有成功,我需要找到另一种能让POC有效的方法。

载荷:

回应是:

下面是“id”返回的信息:

为了充分证明存在这个漏洞,我给Facebook安全团队提供了“cat/proc/version”的结果,在这里我就不公布它的结果了。

根据Facebook负责任的漏洞披露政策,我没有进行更深的研究。

我和Facebook安全团队的Neal研究员讨论了最初的报告,“cat/proc/version | base64”可能更好,同时,一些更深层次的研究表明,“base32”在包括DNS隧道的各种技术中是比较常用的(请看:https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152)。

我很高兴成为攻破Facebook的人之一。

时间线

  • 16 Oct 2016, 03:31 am: 初始报告;
  • 18 Oct 2016, 05:35 pm: Neal向我要使用的POC;
  • 18 Oct 2016, 08:40 pm: 我发送了一个POC并提供了额外的信息;
  • 18 Oct 2016, 10:31 pm: Neal确认了漏洞;
  • 19 Oct 2016, 12:26 am: Neal说正在修复漏洞;
  • 19 Oct 2016, 02:28 am: Neal通知我说漏洞已经修复;
  • 19 Oct 2016, 07:49 am: 我回答说,确认漏洞修补,并要求披露时间表;
  • 22 Oct 2016, 03:34 am: 尼尔回答披露时间表;
  • 28 Oct 2016, 03:04 pm: 4万美元的奖励发放;
  • 16 Dec 2016: 披露批准;

作者:pwn_361

来源:51CTO

利用ImageMagick命令执行漏洞拿下Facebook四万美元奖金相关推荐

  1. ImageMagick命令执行漏洞(CVE-2016–3714)利用及测试

    ImageMagick命令执行漏洞(CVE-2016–3714) 5月3日,ImageMagick官方披露称,目前ImageMagick存在一处远程命令执行漏洞(CVE-2016–3714),当其处理 ...

  2. php imagemagick 漏洞,ImageMagick命令执行漏洞分析

    关于ImageMagick ImageMagick是一个功能强大的开源图形处理软件,可以用来读.写和处理超过90种的图片文件,包括流行的JPEG.GIF. PNG.PDF以及PhotoCD等格式.使用 ...

  3. 命令执行——命令执行漏洞及(四)

    普及DVWA中的命令执行漏洞并通过源码分析深入了解命令执行漏洞 DVWA介绍 点我查看搭建方法 DVWA(Damn Vulnerable Web Application) 平台: >用来进行安全 ...

  4. 研究员发现 Google Cloud 项目中的 SSRF 漏洞,获1万美元奖金

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 摘要 安全研究员David Schütz 发现谷歌 Cloud 项目中存在一个 URL 解析漏洞,可导致项目易受服务器端请求伪造(SSRF)攻击 ...

  5. 命令执行漏洞 java_白帽子挖洞—命令执行(Commnd Execution)篇

    0x00介绍 命令执行漏洞概念:当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数.如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的 ...

  6. 命令执行漏洞之远程命令执行和系统命令执行

    渗透学习 命令执行漏洞 文章目录 渗透学习 前言 *本文只做学习用途,严禁利用本文提到的技术进行非法攻击,否则后果自负,本人不承担任何责任.* 一.命令执行漏洞概述 二.实验步骤 1.管道符号 2.远 ...

  7. Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权

    Hack The Box - Meta Hack The Box开始使用流程看这篇 文章目录 Hack The Box - Meta 整体思路 1.Nmap扫描 2.Exiftool远程代码执行漏洞( ...

  8. 又被野外利用了!新曝光Office产品多个远程命令执行漏洞分析

    本文讲的是又被野外利用了!新曝光Office产品多个远程命令执行漏洞分析, 早在2015年,FireEye曾发布过两次关于Office的Encapsulated PostScript (EPS)图形文 ...

  9. ctfshow-萌新-web11( 利用命令执行漏洞获取网站敏感文件)

    ctf.show 萌新模块 web11关, 这一关考察的是命令执行漏洞的利用, 源码中过滤了一部分命令执行函数和文件查看的命令, 推荐使用 passthru()函数配合 more命令获取敏感文件中的f ...

最新文章

  1. mongodb启动不了:child process failed, exited with err
  2. asp.net中上传图片并生成小图片,自动添加水印的代码 .
  3. eclipse批量修改package、import中的包名
  4. 自定义滚动条CSS样式
  5. netbeans代码提示_Java代码现代化的七个NetBeans提示
  6. 用python计算矩形面积结果四舍五入保留两位小数_你还在计算器开平方?太low了吧,学霸考场都用这种方法开平方...
  7. mysql存储过程输出多个参数值_MySQL 存储过程返回多个值
  8. Github 平均 Star 为 3558 的机器学习开源项目,你错过了哪些?
  9. MySQL 双主单写,主库偶尔出现大量延迟的原因
  10. np.squeeze():把张量中维度为1的维度去掉
  11. Hive查看执行计划
  12. 笔记本电脑如何连接手机热点_如解决Mac连接手机热点出错问题 ?
  13. 数据库更新DATE类型的时间
  14. 线性代数及其应用(原书第5版)
  15. django+xadmin在线教育平台慕学网(一)
  16. DbgView 无法开启Capture Kernel问题
  17. opencv旋转摄像头
  18. Linux内核配置之Kconfig
  19. 收银系统连接不上数据服务器,收银系统服务器数据库
  20. 分享一个蛋白互作网站——String (一)

热门文章

  1. 电脑硬盘是干什么用的_电脑硬盘位不够用?有了它就不担心、奥睿科硬盘柜体验...
  2. c语言五子棋开题报告,基于VC的五子棋游戏的设计与实现(附答辩记录)
  3. else if mybatis 嵌套_mybatis踩坑之——foreach循环嵌套if判断
  4. Android Loader机制
  5. java中有ClockPane类吗,JavaFX实现简易时钟效果(二)
  6. 2020 mse 清华_ICSMSE 2020
  7. 信息安全技术 网络安全事件应急演练指南_省局举办网络安全培训讲座
  8. vue-router 的基本使用
  9. 从零开始html css,HTML/CSS从零开始-常用属性(三)
  10. mono for android mysql_结合使用 ADO.NET 和 Android