接着上一篇的看雪Exploit me试题。

这道题给出了一个ActiveX的DLL,挖掘这个DLL中的漏洞。

由于从来没有接触过ActiveX的Fuzzing,所以找了一些文章来看。自己动手试验了一下。

根据提示,使用了Comraider来作为Fuzzing工具。这个工具比较老了,找了好久才找到下载地址

http://down.51cto.com/data/1100082

根据出题者的意图,应该是先对这个控件进行Fuzzing,然后根据结果进行分析得出漏洞。最后要这个漏洞写出poc,使用堆喷来完成。

实验环境是ie6+xp sp3

根据Fuzzing的结果可知,LoadPage存在漏洞,看了一下测试的payload,是这样的。

根据256个A,猜想是个栈溢出。

用od调试这个ActiveX控件,这里费了一些时间。因为从来没有调试过ActiveX控件,不知道怎么定位那些函数,因为那些并不是导出函数。后来发现,原来oleaut32.dll的

DispCallFunc函数会调用这个ActiveX中的函数,也就是只要断在DispCalFunc就可以了。

进入之后发现程序逻辑很复杂,有很多子函数调用,逆向分析一时找不到头绪。于是想到了用OD自动单步执行,来定位是执行到哪一条指令时导致的异常。结果如图

可以看到是4573F25处的retn指令导致的异常,此时栈中的返回地址已被覆盖,导致了retn到不可访问的地址,导致了异常。

用ida找到这一段程序后可以发现,这是一个strcmp的误用导致的问题。

rep movsd导致了漏洞的发生。

300个字节的数据刚好可以淹没返回地址。

第一次ActiveX Fuzzing测试的更多相关文章

  1. ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]

    ActiveX 添加测试工程 1.新建工程MFC application, 2.添加完毕,在main Dialog中, 右键[Insert Activex Control],选择你的ActiveX控件 ...

  2. 第一次java程序测试感受

    第一次JAVA程序设计测试,检验了一个暑假的成果.显而易见,我做的并不是很好,程序最起码的输入输出以及方法的定义还是没有问题的,但是考到了文件输入输出便看出来了.对于文件的输入输出,虽然我预习到那里, ...

  3. 关于文件格式Fuzzing测试与漏洞挖掘的学习

    最近对于文件的漏洞挖掘比较感兴趣,所以在找资料来看.顺带记录笔记,把这些笔记贴在博客中分享一下.最近打算把精力放在mp3格式的漏洞发掘上,一来这是常见的文件格式格式也比较清晰.二来这也是学长推荐的入手 ...

  4. Jmeter+TCP\Scoket(8583)报文压力测试

    Jmeter一般被用来测试HTTP协议,我第一次拿来测试socket协议,pos机传输报文为8583,协议属于socket,也是TCP协议的一种,网上有LR怎么测试8583报文,我就研究了一下怎么用J ...

  5. 【后台测试】手把手教你jmeter压测

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处.  转载请注明出处:http://www.cnblogs.com/by-dream/p/5611555.html 我知道我迟早是要踏上了后台测试之路 ...

  6. [产品相关] A/B测试终极指南(翻译)

    转载地址: http://blog.sina.com.cn/s/blog_9149268d0100zrx7.html 还记得以前导师说看了英文的文章就把它翻译一下吧,这样会对文章更好地理解,也会有更深 ...

  7. VSTS负载测试——如何:使用 SQL 创建结果存储区

    原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/06/01/1493939.html 原文参见:http://msdn.microsoft.c ...

  8. python高级编程之我不测试

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#测试驱动开发(高级编程处学习,第11章)#测试驱动开发也叫TDD, 是制造高质量软件的一种简单技 ...

  9. 【转】Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析

    原文网址:http://www.cnblogs.com/zh-ya-jing/p/4452675.html CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测 ...

随机推荐

  1. CH3101 阶乘分解

    题目链接 分解\(n!\)的质因数,输出相应的\(p_i\)和\(c_i\). 其中\(1\leq n\leq 10^6\).   考虑每一个质因子 \(p\) 在 \(n!\) 中出现的次数.显然, ...

  2. 使用 swoole 加速你的 laravel

    在此前的另外一篇文章讨论过 opcache:php 性能优化之opcache - 让你的php性能提升 50% 再来复习一下吧,导致 php 慢的各种因素中解析性语言的特性可以说是罪魁祸首,再加上,每 ...

  3. Java入门:Java下载与安装方法

    本文适合刚入门的Java编程的初学者阅读. JDK有两种下载方法,一个是官网下载,另一个是第三方网站下载.官网速度也许有点慢,慢的话可以考虑去第三方网站下载. 一.官网下载 1. 访问地址:http: ...

  4. PhantomJS的替代品--无头浏览器(Headless Chrome)

    在使用PhantomJS时候,出现提示: UserWarning: Selenium support for PhantomJS has been deprecated, please use hea ...

  5. Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

    Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...

  6. Vue 嵌套数组 数组更新视图不更新

    关于Vue的响应式原理,可以看官方文档或其他资料, https://www.jianshu.com/p/34de360d6035 data里定义了一个数组arr,数组的元素可以是同样格式的数组arrC ...

  7. zkw费用流模板

    理论:http://www.cnblogs.com/acha/p/6735037.html #include<cstdio> #include<cstring> #includ ...

  8. mysql 距离函数

    要有超级权限 SET GLOBAL log_bin_trust_function_creators = 1;DELIMITER $$CREATE DEFINER=`root`@`localhost` ...

  9. 20155325 2016-2017-2 《Java程序设计》第5周学习总结

    教材学习内容总结 Java中把正常流程放try块中,错误(异常)处理放catch块中. Error及其子类写程序不用处理,最多留个日志.因为这种错误Java应用程序本身是无力回复的. 在使用throw ...

  10. 【转】 jquery easyui Tab 引入页面的问题

    原地址:http://blog.csdn.net/superdog007/article/details/8225518 jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上 ...