pwn
zero_DAIDAI
这个作者很懒,什么都没留下…
展开
-
PWN环境/工具
1. 环境最好选择linux(ubantu14或者16最好),windows操作和环境搭建都不方便。Linux中需要一个wine(下载使用教程网上很多),来运行后面用的工具。2. 工具pwntools写exp必备工具。附上使用和安装说明书:https://pwntools.readthedocs.io/en/stable/index.htmlLibcSearcher做pwn题时经常需要泄露libc中某些函数地址(如puts、write、gets等)来确定libc版本,然后根据版本和相对偏移计原创 2020-06-24 11:16:01 · 1041 阅读 · 1 评论 -
PWN入门第二节(缓冲区溢出之栈溢出下)
0x10 上期回顾上篇文章介绍了栈溢出的原理和两种执行方法,两种方法都是通过覆盖返回地址来执行输入的指令片段(shellcode)或者动态库中的函数(return2libc)。本篇会继续介绍另外两种实现方法。一种是覆盖返回地址来执行内存内已有的代码片段(ROP),另一种是将某个函数的地址替换成另一个函数的地址(hijack GOT)。0x20 相关知识0x21 寄存器在上篇的背景知识中,我们提到了函数状态相关的三个寄存器--esp,ebp,eip。下面的内容会涉及更多的寄存器,所以我们大致介绍下寄存转载 2020-06-23 19:24:04 · 265 阅读 · 0 评论 -
PWN入门第一节(缓冲区溢出之栈溢出上篇)
0x10 本期简介在计算机安全领域,缓冲区溢出是个古老而经典的话题。众所周知,计算机程序的运行依赖于函数调用栈。栈溢出是指在栈内写入超出长度限制的数据,从而破坏程序运行甚至获得系统控制权的攻击手段。本文将以32位x86架构下的程序为例讲解栈溢出的技术详情。为了实现栈溢出,要满足两个条件。第一,程序要有向栈内写入数据的行为;第二,程序并不限制写入数据的长度。历史上第一例被广泛注意的“莫里斯蠕虫”病毒就是利用C语言标准库的 gets() 函数并未限制输入数据长度的漏洞,从而实现了栈溢出。Fig 1. 波士转载 2020-06-23 19:06:19 · 721 阅读 · 1 评论