1.S(Signal)ROP漏洞原理
在进行系统调用时,内核会保存断点信息,主要是将所有寄存器压入栈中,以及压入signal信息,以及指向sigreturn的系统调用地址。我们称ucontext和siginfo这一段为signal frame,这一部分是在用户进程的地址空间的。

之后会跳转到signal handler中处理相应的signal,signal handler处理完后,就会执行sigreturn代码。

所以漏洞利用原理就是通过伪造Signal Frame来控制rax rdi rsi rdx寄存器的值,最后将rip指向syscall,来达到执行我们想要执行的函数的目的,然后调用sigreturn控制程序执行流程

伪造signal frame控制寄存器以执行函数-->signal handler处理signal-->执行sigreturn系统调用(包括之前压入栈的寄存器),也就是在上图中ucontext save保存进程断点时通过伪造signal frame把寄存器的值改掉,然后在ucontext restore恢复进程上下文的时候把我们伪造的寄存器值返回到进程中去,从而达到攻击目的,获取shell

2.漏洞利用

