利用 Adobe Flash Player ActiveX 控件绕过 SafeSEH(问题及解决方法)

本次实验出自书籍《0day安全:软件漏洞分析技术》第二版第十一章第 11.7 小节:利用 Adobe Flash Player ActiveX 控件绕过 SafeSEH。


这个实验的实验过程在书中写的比较清楚,网上也有一些博文做了分析,但是我在实验过程中遇到的一些问题在网上并没有找到很好的答案,最后自己摸索着搞出来了,所以我认为这是一个欠缺的内容。因此这篇博文的内容为我本人在该实验过程中遇到的问题以及解决方法,而不是一个完整的实验过程复现。


1、关于 Visual Studio 2008


书中用的集成编译环境是 Visual Studio 2008,但是 VS 2008 有几个不同的版本。我最开始直接用的是 VC++ 2008 ,结果没有 MFC 选项,无法生成具有溢出漏洞的 ActiveX 控件。然后在网上看到有朋友吐槽用免费的 VS 2008 Express 版也没有 MFC,也不行。后来我在 Stack Overflow 的一片文章上找到微软官网给出的一个有 90 天试用期的 VS 2008 Pro 版,暂且算解决问题。


2、关于 Flash Player ActiveX 控件 


书中写到用的是 9.2.124 版的 Flash Player ActiveX,并且提到该版本是最后一版没有启用 SafeSEH 的 Flash Player ActiveX。但是我在看雪的一篇文章上看到说,Flash Player ActiveX 只有 9.0.124 版,并没有 9.2.124 版。然后我去Adobe 官网上摸索之后发现的确如此,这应该是书本的一个错误,书中用的应该是 9.0.124 版。当然按照书中说法,9.0.124 版之前的版本都是可以完成实验的。


除此之外,9.0.124 算是比较老的版本了,我在实验的时候刚开始安装的是 22.x.x 的版本,所以需要卸了新的装旧的。但是在装老版本的时候遇到了两个问题。第一个是我在 Adobe 官网上找到了 9.0.124 版,但是却有三个文件,刚开始不知道哪一个才是 ActiveX 控件,耗了好一段时间还弄错了。后来才知道我们需要安装的是 flashplayer9r124_winax.exe 这个(文末给出的下载链接包含了大部分 9.x.x 版的 Flash Player,我们解压之后进入「 9r124」 文件夹即可):


利用 Adobe Flash Player ActiveX 控件绕过 SafeSEH(问题及解决方法)_第1张图片


第二个问题是安装的时候报错,在网上查了一下觉得应该是原来的新版本没有卸载干净。在 Adobe 官网上找到一个 Flash Player 卸载工具,运行之后重新安装,顺利完成。


3、关于 VulnerAX_SEH.ocx 控件中的 test() 函数


这件事说出来比较丢脸~按照课本添加 test() 函数之后,突然有点懵了,不知道该在哪里写定义(真的脸皮都没了,虽然没写过 ActiveX 控件,但怎么说也是写过普通的 MFC 窗口程序的孩子啊~)。后来醒过神来,在 test() 方法声明上面右键,「go to definition」即可。或者看书本图片,可以知道类名。


4、IE7 or IE8


我的系统是虚拟机里面的 XP SP3,刚开始用的是 IE8,但是一直不成功,后来像书中一样用 IE7 就可以了。不过我认为这只是某些设置配置的问题,用 IE8 应该也是可以成功的。


5、下载链接

  • VS 2008 Pro Edition 90 day Trial ENUX
  • Flash Player 9.x.x



你可能感兴趣的:(0day安全:软件漏洞分析技术)