接着上一篇的看雪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. Gym 101933

    Gym 101933 B. Baby Bites水题直接模拟即可 #include <cstdio> #include <cstring> #include <queue ...

  2. HDU 6249

    Alice’s Stamps Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  3. Service Fabric Cluster Manager

    作者:潘罡 (Van Pan)@ Microsoft 我们回到Service Fabric最底层的话题,谈谈Service Fabric是怎么工作的. 首先,我们回到下面的文档,看看Service F ...

  4. linux操作系统位数

    方法1:getconf LONG_BIT 查看 如下例子所示: 32位Linux系统显示32, 64位Linux系统显示64.最简单.快捷的方法. [root@DB-Server ~]# getcon ...

  5. string 中的一些优化事项

    1.1 fmt  vs  "+" (无转义) import ( "testing" "fmt" ) var ( str = "he ...

  6. [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

    转载自:https://segmentfault.com/a/1190000006435886 解决办法:添加package.config.js配置文件中,添加本文章的红色部分代码 import vu ...

  7. Oracle的基本语法,存储函数及触发器

    1.PL/SQL    PL/SQL是Oracle对 ql语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句,使SQL语言具有过程处理能力.把 SQL 语言的数据操纵能  力与过程语言的数据 ...

  8. 科学计算三维可视化---TVTK管线与数据加载(可视化管线和图像管线了解)

    一:TVTK的管线 使用管线技术将TVTK中各个对象穿连起来,几乎所有渲染引擎都会提到管线技术 在TVTK中,每个对象只需要实现相对简单的任务,整个管线则能根据用户的需求,实现复杂的数据可视化处理. ...

  9. bzoj千题计划132:bzoj1189: [HNOI2007]紧急疏散evacuate

    http://www.lydsy.com/JudgeOnline/problem.php?id=1189 二分答案 源点向人连边,流量为1 门拆为mid个点,同一个门的第j个点向第j+1个点连边,流量 ...

  10. pandas 实现rfm模型

    import pandas as pd import numpy as np df = pd.read_csv('./zue_164466.csv') df['ptdate'] = pd.to_dat ...