基本原理
利用系统调用get shell的一种漏洞利用方式
原理
控制程序执行系统调用,需要有syscall命令,并且可以控制rax寄存器以及传参寄存器。
实际上在编写shellcode的时候我们大部分也是通过系统调用来实现函数调用
利用手法
一般而言,程序中很少出现syscall的gadgets,除非是特殊的编译方式或者特地添加了gadgets。所以syscall的利用通常都是千奇百怪的
最简单的,我们可以执行execve("/bin/sh",null,null)
,当程序流很难被劫持的时候,我们可以配合打SROP。另外可以用来二次读,泄露什么的,之后找些例子来。