该文被密码保护。 阅读全文
posted @ 2018-03-26 18:03 Clingyu 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 第一届强网杯pwn题 shellman 首先看看题目的大致信息,看看哪里会出现问题。 list函数,首先可以看到一些关于内存块的信息,其中堆表的基址在bss段,在堆中有一个类似于堆块的结构,三个64位数据作为一个堆块的标识,第一个数据位应该是标识当前是否有堆块,为1则表示有堆块,为0则没有,第三个数 阅读全文
posted @ 2018-03-25 21:10 Clingyu 阅读(332) 评论(0) 推荐(0) 编辑
摘要: ptmalloc内存分配和回收详解(文字版) 进程默认内存布局(x86) 从进程的内存布局可知,.bss段之上的这块分配给用户程序的空间被称之为heap,start_brk指向heap的开始,而brk指向heap的顶部。可以使用系统调用brk()和sbrk()来增加表示heap顶部的brk值,从而线 阅读全文
posted @ 2018-03-22 00:05 Clingyu 阅读(1965) 评论(0) 推荐(0) 编辑
摘要: HITCTF的pwn部分 DragonBall 先按一般的流程来,首先分析一下程序功能: 通过买卖龙珠来集齐7颗龙珠,就可以许愿。 所以程序包含买、卖、显示龙珠数、许愿和退出五个功能 可以看到,buy函数有一个很明显的缺陷,就是在购买龙珠时,只判断钱数是否为零,所以只要钱数不为零,就可以无限购买,所 阅读全文
posted @ 2018-03-14 17:18 Clingyu 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 缓冲区溢出保护机制 Windows GS安全编译选项 Visual Studio 2003及以后版本的Visual Studio中默认启用了这个安全编译选项。 GS编译选项为每个函数增加了一些额外的数据和操作: 1、在所有函数调用发生时,向栈帧内压入一个额外的随机DWORD,这个随机数被称作“can 阅读全文
posted @ 2018-03-11 22:25 Clingyu 阅读(2474) 评论(0) 推荐(1) 编辑
摘要: 缓冲区溢出保护机制 Linux canary(栈保护) 栈溢出保护是一种缓冲区溢出攻击的缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。 当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,该cookie往往放置在ebp/rbp 阅读全文
posted @ 2018-03-11 22:24 Clingyu 阅读(7193) 评论(0) 推荐(1) 编辑
摘要: TAMUCTF的pwn部分 首先先看一些简单的栈溢出,TAMUCTF的五题pwn全是由gets引起的栈溢出,五题分别代表了栈溢出最基本的题型以及利用方式,值得看一看。 本篇主要针对于最基础的内容,所以尽可能详细的作出解释 pwn1 pwn1是通过溢出覆盖局部变量,从而达到某个正常程序流达不到的分支, 阅读全文
posted @ 2018-03-11 22:23 Clingyu 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 反汇编简介 概念 在传统的软件开发模型中,程序员使用编译器、汇编器、链接器中的一个或者几个创建可执行程序,为了回溯编程过程,可以使用各种工具来撤销汇编和编译过程,这些工具就叫做反汇编器和反编译器。 反汇编器:以机器语言作为输入,得到汇编语言形式的输出结果 反编译器:以机器语言作为输入,得到高级语言形 阅读全文
posted @ 2018-03-11 22:23 Clingyu 阅读(2169) 评论(0) 推荐(0) 编辑