SROP


1.S(Signal)ROP漏洞原理

在进行系统调用时,内核会保存断点信息,主要是将所有寄存器压入栈中,以及压入signal信息,以及指向sigreturn的系统调用地址。我们称ucontextsiginfo这一段为signal frame,这一部分是在用户进程的地址空间的。

image-20240904174552497

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

image-20240904172201910

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

image-20240904184524475

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

image-20240904173238778

2.漏洞利用

image-20240904173337160

image-20240904185429656


文章作者: 0x00dream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0x00dream !
  目录