暴风影音 M3U 文件 解析漏洞

漏洞简介

这是一个对 M3U 文件解析的漏洞,程序在读取 M3U 文件内容时未对内容长度进行有效性判断

M3U 文件简介

媒体文件的列表文件,换句话说它是媒体播放器的播放列表文件。

漏洞原理及利用分析

暴风影音可以播放不同格式的媒体文件,所以它在打开文件时必然会对文件的扩展名进行检测,由此想到可以在程序里查找“.M3U”字符串,然后在这个参考字符串上设置断点
暴风影音 M3U 文件 解析漏洞
打开poc,断下
暴风影音 M3U 文件 解析漏洞
单步到这,弹出计算器,下断,重载
暴风影音 M3U 文件 解析漏洞
跟进,继续
暴风影音 M3U 文件 解析漏洞
下断,继续
暴风影音 M3U 文件 解析漏洞

继续
暴风影音 M3U 文件 解析漏洞
strcat这没检测连接字符串长度
暴风影音 M3U 文件 解析漏洞
执行过之后,看看seh
暴风影音 M3U 文件 解析漏洞
暴风影音 M3U 文件 解析漏洞
se处理程序指向
暴风影音 M3U 文件 解析漏洞
在那里下个断
继续
暴风影音 M3U 文件 解析漏洞
返回到这,是shellcode
暴风影音 M3U 文件 解析漏洞
把上面那个断点去了,看看哪出了异常
暴风影音 M3U 文件 解析漏洞
直接跳到了这个模块,走了两步弹出
暴风影音 M3U 文件 解析漏洞
看样子是ecx的问题
往上面走走
暴风影音 M3U 文件 解析漏洞
暴风影音 M3U 文件 解析漏洞
到这就明白了,这个ecx的值是来自于我们在栈上构造的数据
而那个地方又不可写,就触发异常
那个poc的构造还没搞定