作者: mark0519

4 篇文章

pwn整数溢出
pwn整数溢出 整数溢出原理 具体原理 ​ 在 C 语言中,整数的基本数据类型分为短整型 (short),整型 (int),长整型 (long),这三个数据类型还分为有符号和无符号,每种数据类型都有各自的大小范围,(因为数据类型的大小范围是编译器决定的,所以之后所述都默认是 64 位下使用 gcc-5.4),当程序中的数据超过其数据类型的范围,则会…
pwn随机数漏洞
pwn随机数漏洞 PWN中通常使用srand()和rand()配合使用来设置伪随机数。通常当我们输入的数可以覆盖到srand()中的值时,我们可以预测rand()产生固定序列。 关于rand()和sand() rand() rand()函数是使用线性同余法生成随机数,因为其周期特别长,所以在一定范围内可以看成随机的。但每次生成都是固定的序列 我们使…
pwn动态链接库
pwn动态链接库 在众多ROP方法中,重点是要找到system函数的地址来进行ROP,而有的elf源文件中并没有system函数,这时就可以利用libc system 函数属于 libc,而 libc.so 动态链接库中的函数之间相对偏移是固定的。 即使程序有 ASLR 保护,也只是针对于地址中间位进行随机,最低的 12 位并不会发生改变。 所以如…
Pwn基础
pwn前置基础 栈溢出及其返回地址(简略) 栈顶:esp 栈底:ebp 返回地址的地址位于 ebp,也就是栈底的地址加 4 个字节,假如 ebp 为 0xFF99C968, 那么返回地址就是 0XFF99C96C 中间相差 4(或者 8 个字节) 个字节,同时要说一下地址的数字越大代表在栈堆中的位置越往下,也可以理解为返回地址在栈底下面 4(或者)…