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的内存覆盖这些内存

本文完

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2018-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java Web

Java I/O不迷茫,一文为你导航!

学习过计算机相关课程的童鞋应该都知道,I/O 即输入Input/ 输出Output的缩写,最容易让人联想到的就是屏幕这样的输出设备以及键盘鼠标这一类的输入设备,...

1182
来自专栏腾讯Bugly的专栏

《Android 创建线程源码与OOM分析》

| 导语 企鹅FM近几个版本的外网Crash出现很多OutOfMemory(以下简称OOM)问题,Crash的堆栈都在Thread::start方法上。该文详细...

1K5
来自专栏企鹅号快讯

UNIX 高手的 10 个习惯

Unix运维工程师看过来:10个能够提高您的 UNIX 命令行效率的好习惯——并在此过程中摆脱不良的使用模式。本文循序渐进地指导您学习几项用于命令行操作的技术,...

1929
来自专栏蓝天

redis的一些简介

Redis是Remote Dictionary Server的缩写,他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库。

1061
来自专栏Android群英传

看ASM在代码中的强势插入

3973
来自专栏菩提树下的杨过

rpc框架之 thrift 学习 1 - 安装 及 hello world

thrift是一个facebook开源的高效RPC框架,其主要特点是跨语言及二进制高效传输(当然,除了二进制,也支持json等常用序列化机制),官网地址:htt...

3479
来自专栏FreeBuf

渗透测试中利用基于时间差反馈的远程代码执行漏洞(Timed Based RCE)进行数据获取

在最近的渗透测试项目中,为了进一步验证漏洞的可用性和危害性,我们遇到了这样一种情形:构造基于时间差反馈的系统注入命令(OS command injection ...

2189
来自专栏Laoqi's Linux运维专列

python3–内置模块

4986
来自专栏IT技术精选文摘

Java Instrument 功能使用及原理

1803
来自专栏前端侠2.0

Angular技巧汇总 原

    声明项目的全局类型,同时不需要在各个Ts文件中import {XXX} from 'xxx'  ,就能直接引用!方法是:

1172

扫码关注云+社区

领取腾讯云代金券