欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Microsoft Internet Explorer execCommand Use-After-Free Vulnerability Analyze

Microsoft Internet Explorer execCommand Use-After-Free Vulnerability Analyze

written by h4ckmp
http://t.qq.com/h4ckmp
欢迎讨论各种漏洞问题.
漏洞信息
Internet Explorer在打开攻击页面时,CMshtmlEd对象被删除并释放,且释放后的内存被重用,导致Use-After-Free.
受影响系统:
Microsoft Internet Explorer 9.x
Microsoft Internet Explorer 8.x 
Microsoft Internet Explorer 7.x
发布
2012-09-17 
漏洞来源信息:
http://eromang.zataz.com/2012/09/16/zero-day-season-is-really-not-over-yet/
漏洞类型:
Use-After-Free
crash info
使用IE打开exploit.htm, 发生异常, 堆栈情况如下

漏洞分析
异常产生在CMshtmlEd::Exec(),  原因是由于objMshtmlEd被覆盖, 导致虚函数寻址调用时被控制


查看POC中代码, document.execCommand("SelectAll") 执行时会调用CBase::execCommand()函数, 第一个参数为要执行命令的字符串, 函数中会检查要执行的命令是否有效.
在mshtml!CEditRouter::ExecEditCommand.函数中会调用CEditRouter::SetInternalEditHandler来设置命令事件handler, 并创建一个MshtmlEd对象

mshtml!CEditRouter::SetInternalEditHandler函数内部调用mshtml!CDoc::GetHTMLEditor 获取页面中的Editor, 通过mshtml!CHTMLEditor::AddCommandTarget来创建并初始化一个命令事件.

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功