没有开任何保护
image

反汇编很明显栈溢出
image
image

然而只有System函数地址是已知的(0x400570),参数”/bin/sh”未知
发现有$0(代表bash,做参数等同于”/bin/sh”)
image

**特别注意:**32位的函数调用使用栈传参,64位的函数调用使用寄存器传参,分别用rdi、rsi、rdx、rcx、r8、r9来传递参数(参数个数小于7的时候)
所以我们要找一个能够pop rdi的指令通过这句ROPgadget –binary pwn4 –only “pop|ret”可以找到,地址为0x4007d3
image

用命令ROPgadget –binary pwn4 –string ‘$0’ 找到$0的地址0x60111f
image

最后构造payload
image
image