-
-
[原创]Windows 2000 系统资源管理器的一个漏洞
-
发表于:
2023-8-3 11:30
13266
-
[原创]Windows 2000 系统资源管理器的一个漏洞
这似乎又是一个0 day漏洞(?)
这个漏洞与pif文件有关,是我在研究pif文件的时候发现的,关于pif文件的一些资料我整理到自己的博客里了:https://qfwfq.top/2023/07/08/some-fact-about-pif/
后面会用到里面的一些内容。
实验环境
Microsoft Windows 2000 5.00.2195 Service Pack 4
用到的软件工具
010Editor
ollydbg
IDA pro
首先,win 2000系统里存在一个文件_default.pif,它的结构如下:
我在这个文件的基础上添加了一个名为WINDOWS VMM 4.0的块,如下图:
把这个文件放在U盘根目录下,插入win 2000系统后,浏览U盘时,资源管理器崩溃闪退。
我们可以确定的是,崩溃的出现是由于我们构造的pif文件里新的内容,而且应该出现在对文件内容的处理的过程中。
而根据pif文件的格式:
可以看到每个数据块都有一个名字,猜测在对这些数据块处理的代码里可能包含这些名字的字符串常量,也许可以由此定位到数据块处理相关代码。
于是在explorer.exe和其调用的动态链接库中搜索这些字符串,最终发现只有系统shell32.dll中存在这些字符串:
然后在ollydbg里追踪崩溃
由于windows系统只允许存在一个explorer.exe进程实例,我们用ollydbg打开新的explorer.exe进程进行动态调试时,系统会自动关闭该进程,从而阻止了调试的继续进行。所以需要通过File ->Attach菜单项将系统当前的explorer.exe进程附加ollydbg中的方式进行调试。
在调用这些字符串常量的函数里下大量断点,通过函数执行后崩溃是否发生判断溢出点的大致位置:
最后跟踪到这个函数:
也就是函数sub_7909062B
整个跟踪过程如下:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2023-8-3 18:23
被Qfwfq-编辑
,原因: 放错了一张图片