srop总结

Posted on Nov 28, 2020

srop技术,是一种利用sigreturn系统调用(主要是Linux在信号处理时为了保存进程上下文而使用的)来修改寄存器的技术。ctfwiki上写得很好,但是有几点应该强调一下,可以更好得理解。

最先要说的是,srop和信号没有什么紧密的关系

Linux信号机制

不是重点

总体来讲就是如上图一样,当系统向进程发出(软中断)信号时,将进程挂起的一种机制

sigreturn

这是我们主要利用的东西,信号处理完的时候,会进行sigreturn的系统调用,这是会通过UCONTEXT和siginfo来恢复寄存器等使进程继续执行。我们把UCONTEXT和siginfo统称为signal frame。也就是说我们通过sigreturn的系统调用和伪造signal frame就可以做的对寄存器的修改。

特别要注意的一点,sigreturn这个系统调用,做了也只做了对所有寄存器的修改。

看了这些,再看ctfWiki中对srop的介绍就可以容易的理解了。

有三道题目,在BUU上都可以找到。WP我的博客中也都写好了