专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
龙视新闻联播  ·  我国载人登月又有新突破! ·  20 小时前  
龙视新闻联播  ·  我国载人登月又有新突破! ·  20 小时前  
七牛云  ·  七牛云上线 MiniMax-M1,即刻登录体验吧 ·  昨天  
七牛云  ·  七牛云上线 MiniMax-M1,即刻登录体验吧 ·  昨天  
内蒙古市场监管  ·  内蒙古助企破解“出海”知识产权难题 ·  昨天  
内蒙古市场监管  ·  内蒙古助企破解“出海”知识产权难题 ·  昨天  
Java知音  ·  明显感觉到Java后端面试已经完全变了! ·  2 天前  
Java知音  ·  明显感觉到Java后端面试已经完全变了! ·  2 天前  
福建省广播电视局  ·  第十届海峡两岸青年网络视听优秀作品展荣誉揭晓! ·  3 天前  
福建省广播电视局  ·  第十届海峡两岸青年网络视听优秀作品展荣誉揭晓! ·  3 天前  
51好读  ›  专栏  ›  看雪学苑

【系列】堆溢出研究(三)

看雪学苑  · 公众号  · 互联网安全  · 2017-05-20 14:34

正文

请到「今天看啥」查看全文


由以上两图可知,h5 堆块已经被卸下。。

观察最后一次申请内存时h5前后向指针的变化 非常重要

未申请内存之前 h5处的前向指针 0x360188 指向freelistp[2]0x360188  后向指针0x3606a8指向h3 0x3606a8

当h5被卸下后,h3的前后向指针分别是:0x360188  0x360688  (也就是将原来h5的前向指针的值,写入啦 以后向指针为地址的相对应的值中)

DWORD SHOOT的利用思路


当我们在程序中修改上述的 h5的后向指针为一个合法地址的时候,h5的前向指针就会被写入这个合法的地址当中。


堆溢出的利用——代码植入


一、栈溢出堆溢出利用思路比较

1.栈溢出覆盖面积大,可谓是地毯式覆盖,不精确

2.堆溢出利用比较精确的打击目标(但是部分时候利用的强度小)


二、堆溢出常用的目标

  1. 内存变量

  2. 代码逻辑

  3. 函数返回地址

  4. 异常处理机制

  5. 函数指针

  6. PEB中线程同步函数的入口地址:每个进程的PEB 中都存放这一对线程同步函数指针,指向RtlEnterCriticalSection() 和RtLeaveCritcalSection(),并且在进程退出的时候会被ExitProcess()调用,如果能够通过DWORD SHOOT 修改这对指针中的任意一个,那么在程序退出的时候ExitProcess()将会被骗去执行我们的shellcode。由于PEB的位置始终不会变化(mov eax,fs[30]),所以这对指针相对于peb的偏移之中不变,这使得开发通用的exploit成为可能。

本次采用 peb 中线程同步函数的入口地址 即 PEB(进程环境块) RtlEnterCriticalSection()。ExitProcess() 函数在程序退出的时候会调用临界区函数,但是调用方法独特,是通过线程环境块中偏移 0x20 处存放的函数指针来间接完成的。也就是偏移 0x7ffdf020 处存放的指向 RtlEnterCriticalSection() 的指针。在0x7ffdf024 处存放着 RtlCriticalSection() 的指针。(windows2003 以后改写啦实现方法)。这里我们以地址 0x7ffdf024 处的地址为目标,构造劫持进程植入代码的全套动作:


用于实验的代码:


#include char shellcode[] = "\x90\x90\x90\x90\x90\x90\x90...."; int main() {     HLOCAL h1 = 0, h2 = 0;     HANDLE hp;     hp = HeapCreate(0,0x1000,0x10000);     h1 = HeapAlloc(hp,HEAP_ZERO_MEMORY,200);     __asm int 3 //used to break the process     //memcpy(h1,shellcode,200); //normal cpy, used to watch the heap     memcpy(h1,shellcode,0x200); //overflow,0x200=512     h2 = HeapAlloc(hp,HEAP_ZERO_MEMORY,8);     return 0; }


实验简单介绍







请到「今天看啥」查看全文