首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >挖洞经验 | HackerOne平台ImageMagick漏洞导致服务器内存信息泄露

挖洞经验 | HackerOne平台ImageMagick漏洞导致服务器内存信息泄露

作者头像
FB客服
发布2018-12-24 13:42:25
1.4K0
发布2018-12-24 13:42:25
举报
文章被收录于专栏:FreeBufFreeBuf

大家好,今天我要分享的是关于HackerOne平台GIF图像处理的ImageMagick漏洞(CVE-2017–15277),漏洞很简单,最终也获得了HackerOne官方奖励的$500美金。**

CVE-2017–15277介绍

CVE-2017–15277最早于2017年10月被安全研究人员Emil Lerner发现,它属于开源图像处理组件ImageMagick漏洞,受影响软件为ImageMagick 7.0.6–1和Graphicsmagick 1.3.26。原因在于,当ImageMagick在处理不具备全局或本地调色板的GIF图片时,ImageMagick 7.0.6–1和Graphicsmagick 1.3.26中存在未初始化的调色板,其coders/gif.c文件中ReadGIFImage存在安全漏洞,如果攻击者利用ReadGIFImage来处理GIF图片,构造操作,可以通过未初始化的调色板来间接获取到服务器中的内存数据信息。

简单地说就是,如果服务器中部署了ImageMagick 7.0.6–1和Graphicsmagick 1.3.26,且其中具备未初始化的调色板机制,那么,利用CVE-2017–15277,通过构造图片文件,上传至服务器中的任何可上传地方,之后,服务器通过处理这种构造图片,就会利用未初始化的调色板机制,把其转化成不同像素的图片预览文件,而在这些图片预览文件中,可能包含了一些和服务器内存相关的信息,如Stack trace(堆栈跟踪)和String value(字符串值)信息等。

此外,从实际功能来说,ImageMagick是一个显示、转换和编辑光栅图像和矢量图像文件的开源软件,它被用于许多web应用中的裁剪、调整大小和改变颜色功能,且支持多种图像格式。

漏洞利用

让我们直接来到漏洞利用部分吧,这里,我们以HackerOne网站为漏洞测试目标。

首先,我下载了Emil Lerner在Github上公布的漏洞利用包https://github.com/neex/gifoeb;

之后,利用下述命令来创建512x512像素的GIF漏洞利用(exploitable)图片:

./gifoeb gen 512x512 dump.gif

当然了,你也可以把生成的图片文件改成其它后缀格式,如.jpg 、.tiff 、.bmp等,也可以创建生成其它不同像素的漏洞利用图片:

接着,登录我的HackerOne账户,尝试在用户资料的头像处上传上述命令生成的漏洞利用GIF图片:

之后,服务器后端处理这种漏洞利用GIF图片后,就会生成相应的512x512像素的预览图片;

然后,在GIF格式下,我尝试生成了不同像素的漏洞利用图片,并把它们一一上传,以获取服务器后端生成的不同像素的预览图片:

把这些不同像素的预览图片保存在一个文件夹中:

最后,用以下命令恢复出这些预览图片中包含的服务器内存信息:

for p in previews/*; do ./gifoeb recover $p | strings; done

可以看到,这些不同像素的预览图片中泄露了服务器内存中的运行信息,这些信息包含了服务器路径(path)、操作系统(OS)、软件版本等。

漏洞影响

该ImageMagick漏洞(CVE-2017–15277),可能会导致一些邮件、Cookie、SQL查询语句以及文件目录等服务器相关信息泄露。在上述的漏洞测试中,我们仅发现 了HackerOne的操作系统、文件目录和一些堆栈跟踪泄露信息。漏洞修复当然是升级ImageMagick组件至最新版本了。

漏洞利用建议

1、在最新的ImageMagick组件中,该漏洞利用被缓解修复了,如果向服务器上传漏洞利用图片后,你只会获得一张黑色的预览图片,这种图片不会泄露任何服务器内存信息; 2、即使你在一些漏洞利用场景中,可以获得服务器生成的预览图片,也要看看它是否存在涉及文件目录、操作系统版本等服务器相关的信息泄露,如果仅只是像 {{{*a/!a^a;bb(b|} 的一些堆栈跟踪信息,那还需要继续测试,别忙着上报漏洞; 3、构造不同分辨率和扩展名的漏洞利用图片,尤其是那些具有灰色像素的图片,它们包含的信息比蓝色、绿色或红色图片多得多。最终的可利用性和效果还得依不同网站和ImageMagick组件版本而言。

漏洞上报进程

经向HackerOne上报漏洞后,他们认为这属于内存泄露漏洞,并向我奖励了$500 美金,作为我的第一上漏洞,这对我有很大鼓励。当然,也要感谢 Emily Lerner 公布的漏洞利用方法。

2018.1.6 向HackerOne上报漏洞 2018.1.7 HackerOne评估并分类漏洞 2018.1.7 CVE官方向Emil Lerner分配了漏洞编号 CVE-2017–15277 2018.1.20 HackerOne向我奖励了$500 2018.2.7 漏洞被成功处理修复

*参考来源:medium,clouds编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CVE-2017–15277介绍
  • 漏洞利用
  • 漏洞影响
  • 漏洞利用建议
  • 漏洞上报进程
相关产品与服务
脆弱性检测服务
脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档