CTF实战28 Windows缓冲区溢出

CTF实战28 Windows缓冲区溢出


小姐姐优先~


然后来拜一下祖师爷吧~


重要声明

该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关



今天我们来了解一下Windows缓冲区溢出


只是了解,这东西要详细讲都可以写成书了,要是想深入的话还是建议大家买本书看看


Windows缓冲区溢出


Windows的缓冲区溢出有很多种,这里介绍两种方法


1. 攻击SEH


那什么是SEH


SEH即异常处理结构体,是Windows异常处理机制所采用的重要数据结构

每个SEH包含两个DWORD指针:


  • SEH链表指针

  • 异常处理函数指针


由于SEH结构体存放在程序线程的栈中


所以当溢出后可覆盖SEH结构体,当程序出现异常后可跳转到我们指定的地址


2. Heap Spray攻击



Heap Spray 堆与栈协同攻击


这种攻击经常出现在浏览器ActiveX控件中存在的溢出,攻击者可以生成一个特殊的HTML文件来触发这个漏洞


不管是堆溢出还是栈溢出,漏洞触发后最终能获得EIP


我们可能很难在浏览器中复杂的内存环境中部署完整的shellcode


页面中的JavaScript可以申请内存,因此,把shellcode通过JavaScript布置在堆中成为可能


原理呢


使用Heap Spray的时候,一般会将EIP指向堆区0x0C0C0C0C位置,然后用JavaScript申请大量堆内存,用包含0x90的和shellcode的内存覆盖这些内存


CTF实战28 Windows缓冲区溢出


本文完


下期内容:Linux缓冲区溢出


该文在初音的小站也有同步,点击阅读原文跳转~


CTF实战28 Windows缓冲区溢出

发表评论

电子邮件地址不会被公开。 必填项已用*标注