《0day安全》——暴风影音M3U文件解析漏洞

漏洞简介

在读取m3u文件内容未对内容长度进行有效性判断

m3u文件简介

他其实是播放列表文件

储存着那个音视频文件的名称和路径而已

漏洞原理及利用分析

先以文本打开exp看看blob.png

打开看看,暴风关闭了,但没发生啥,看了下,原来没放在根目录

放根目录,打开果然弹计算器了

blob.png

分析文件型的,一般以ReadFile函数作为第一个断点

但这里比较特殊,播放器打开文件肯定对文件的扩展名进行检测

我们直接在程序中找m3u字符串就行了

401000处查找字符串,查找到后再搜索一下就行了

blob.png

打开exp,断下

blob.png继续单步,执行到下面,弹出计算器

blob.png

从载入,跟进去这个call,继续单步

blob.png就不截图了

02C64045    E8 89F8FEFF     call MediaLib.02C538D3

继续跟进

循环第二次的时候下面的会崩

02C5398F    FF50 04         call dword ptr ds:[eax+0x4]

继续,跟进,单步就发现可以的地方

blob.png

执行完strcat,栈上的seh和返回地址等都被覆盖了

blob.png

blob.png

我们在异常处理程序处下断

单步发现时下面这个函数触发了读取异常

blob.png

里面这里触发了异常

blob.png

覆盖的seh程序地址实际相当于一个小组件

blob.png

控制权给到栈上

blob.png

之后就执行shellcode咯

blob.png

blob.png

最后还是看看ida吧

扩展名

blob.png

blob.png

接下来这个函数触发了异常

blob.png

在里面触发异常

blob.png

而且还没打开poc那个地址就是不能读取的地址了

blob.png

看看异常时作者故意触发的吗

我新建了m3u文件,就只有一点A,不会溢出

发现核心是下面这个跳转跳过异常发生代码

blob.png

还是通过栈上的数据才能触发异常啊

blob.png

这个作者省略了,没说哦

打赏作者
喜欢本博客,打赏让博客永久运行,多少你说了算

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注