何为沙箱
沙箱即限制程序只能调用指定函数来保证程序的安全性
何为orw
orw即open,read,write函数的缩写,一般情况下程序会限制只能调用这三个函数的其中几种
那么由于程序只允许我们调用这三个函数,那么我们无法通过系统调用execve来getshell,只能通过orw这三个函数来获取关键信息(即flag)
如何判断
可以通过seccomp-tools来判断是否开启沙箱
seccomp-tools dump ./pwn
如何绕过
shellcode绕过
原理
通过向栈上注入orw的代码让程序执行(需要关闭nx保护)
例如:
1 | #fd = open('/home/orw/flag',0) |
ROP绕过
适用于开启了nx保护的情况
原理
通过栈迁移等方法向.bss段写入代码然后构造ROP链到bss段执行相关代码