zoukankan      html  css  js  c++  java
  • CVE-2014-0282

    poc来自exploit-db

    win7 x86平台下,开启UST HPA,IE打开POC,crash在WINDBG如图

    引用的对象已经被释放,应该是UAF漏洞。分析对象在哪里创建,哪里释放,才导致了在这个位置UAF。

    这里ESI是对象指针,查看ESI的堆栈回溯记录

    发现释放对象的函数是CTextArea对象的析构函数。

    在POC中也看到有TextArea标签,应该就是创建这个标签时创建的对象。

    如下图,在IDA中可以通过函数名筛选到TextArea对象的构造函数为CTextArea::CreateElement

    那我们就知道在这个构造函数时创建了对象。IDA里查看函数

    可以看到在堆中申请了60bytes成功后,对象指针保存在地址671DCE1A(mshtml!CTextArea::CreateElement+0x36)的esi,在mshtml!CTextArea::CreateElement+0x36下断,确认这点。

    重新运行POC,断下来2次,因为POC中有2个TextArea标签。如图:

    析构函数对象(07c09fa0)释放了

    在接着就到了crash的地方

    现在对象的创建,析构过程分析好了,那再来看此时重用导致的crash的时机。

    看到第二个的doreset函数,在POC中正好对应了document.getElementById("testfm").reset();

    总结这次UAF,一开始所有对象都创建好,当调用document.getElementById("testfm").reset();时,child2的onpropertychange方法被触发,changer函数中所有对象被清空,当这些动作完成之后,doreset函数又来清空CTextArea对象,导致UAF发生。

  • 相关阅读:
    C语言结构体+公用体+枚举训练
    TIFF图像文件格式详解
    Professional CUDA C Programming的代码实例1.1
    C语言数组强化训练
    C语言字符数组与字符串
    文件操作
    MATLAB 与Modelsim之间对测试系统的联合仿真
    FFT实现逆FFT
    眼图——概念与测量(摘记)
    《我的心曾悲伤七次》卡里·纪伯伦
  • 原文地址:https://www.cnblogs.com/Lnju/p/5289351.html
Copyright © 2011-2022 走看看