漏洞原理
1,查看栈溢出返回时哪个寄存器指向缓冲区空间。
2,查看对应的call寄存器或jmp寄存器指令,将IP设置为该指令地址。
3,将寄存器所指向的空间上注入shellcode(该空间是可执行的,通常是栈上)
4,一般解题该漏洞的特点是存在危险函数strcpy的字符串拷贝函数
解题一般步骤
1,检查保护存在RWX segments
2,使用gdb调试程序,看看那些寄存器是指向缓冲区的
3,在利用
ROPgadget --binary vuln --only "call"
ROPgadget --binary vuln --only "jmp"
4,栈布局