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发生。

  • 相关阅读:
    java设计模式----工厂模式
    使用.Net Core Mvc +SqlSugar +Autofac+AutoMapper+....
    使用 Date 和 SimpleDateFormat 类表示时间
    .Net Core 3.0 IdentityServer4 快速入门02
    .Net Core 3.0 IdentityServer4 快速入门
    微信小程序支付
    微信小程序集成腾讯云 IM SDK
    架构杂谈《十》
    架构杂谈《九》
    架构杂谈《八》
  • 原文地址:https://www.cnblogs.com/Lnju/p/5289351.html
Copyright © 2011-2022 走看看