1.ret2text
file checksec
ida64
gets函数有栈溢出漏洞,题目为ret2text即返回到text段得到shell
shift+f12打开字符串窗口,找到/bin/sh
点进去,选中/bin/sh,右键,交叉引用列表(可以找到使用/bin/sh的地方)
看到把/bin/sh放入rdi后,调用了system
x64,64位系统中rdi,rsi,rdx,rcx,r8,r9作为调用函数的前6个参数,如果参数多于6个,其余参数放入栈中
与此对比,x86,32位系统中由于寄存器有限,调用函数时参数都放入栈中,两系统间的区别对于之后的retlibc等题型构造payload时有差异,需要注意
那么只要把栈中填满,放入此处的地址就可以得到shell了
脚本
#!/usr/bin/env python3
from pwn import*
context(os="linux",arch=