-
-
[原创]当gflag不“奏效”——CVE-2013-0077 Microsoft DirectShow quartz.dll m2p文件堆溢出漏洞
-
发表于:
2017-8-19 11:01
6614
-
[原创]当gflag不“奏效”——CVE-2013-0077 Microsoft DirectShow quartz.dll m2p文件堆溢出漏洞
作者原文:https://security.tencent.com/index.php/blog/msg/15
这个是漏洞战争里面的例子,搜了一下没人写,自己实践过程中没能像作者那样开启htc,开启hpa后一步到达相应位置,而我开启后没能预期那样,所以写下此文
首先exploitdb搜了一下,poc在下面,软件也给了 https://www.exploit-db.com/exploits/21991/
注:可能文章中有各种错误的描述,请大佬们势必指出
poc也贴上
xp sp3
quartz.dll 版本:6.5.2600.5596
windbg
注:其实调试过程中遇到过很多奇葩的异常,没有一一列出
首先对qq播放器开启堆尾检查
windbg附加运行,打开文件没异常,应该是quartz.dll版本过高了6.5.2600.6333,换个虚拟机 作者是6.5.2600.5596,发现吾爱破解的虚拟机刚好是这个版本
首先再次确认一下gflag
what???怎么跟作者的不一样,查看堆栈也没啥,那我尝试关掉htc看看结果如何,gflag为0,发现异常位置也是不一样
还有一个,那我们只开hpa情况又会怎么样呢,怎么跟作者什么都没开一样
那时的我有那么几秒钟是崩溃的,很多时候就是那么几秒钟决定了你是继续下去,还是放弃
那我用最原始的办法,看看汇编下面的eax怎么来的,针对开了
在前面的eax赋值地方下个断点
可以看到这里esi指向的堆的大小等字段被覆盖成4141了,那是什么时候覆盖的呢
我们在前面esi赋值的地方下断点
我们发现此时还没被覆盖
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)