前言
最近做buuctf又发现一种以前没有见过的沙箱关闭execve的题目,在网上找了很多资料,终于初步了解了一些简单的绕过技巧,故写此博客记录一下。
[V&N2020 公开赛]babybabypwn
查看保护
保护全开的64位Linux程序。
IDA查看伪代码
直接进入main函数看看,发现syscall函数,并不是很了解这个函数,但是通过百度我们知道syscall的几个参数的意义。
第一个参数表示syscall调用的函数,例如题目中的15调用的就是sigreturn。
看到sigreturn相信很多人马上就联想到了SROP,不了解的推荐看一下CTFWIKI
这里详细的讲解了SROP的基础知识。
如果syscall调用的是sigreturn的话,那么第二个参数自然就是Signal Frame,通过CTFWIKI的学习我们知道这个Signal Frame存的就是所谓的即将恢复到栈上的寄存器的值。