特殊情况下sandbox的bypass
常见的沙箱绕过思路
-
Open/openv
-
Read/readv
-
Write/writev
使用开源工具查看seccomp规则 安装链接:https://github.com/david942j/seccomp-tools
特殊的沙箱绕过思路-未检查架构
i386与x86-64下的系统调用号不同
可以利用retq指令修改cs寄存器为0x23
cs==0x23代表32位模式
cs==0x33代表64位模式
特殊的沙箱绕过思路-未检查范围
在x64下还可以直接使用x32-abi绕过
x32为x86-64下的一种特殊模式
使用64位的寄存器和32位的地址,
只需直接加_X32_SYSCALL_BIT(0X40000000)
即原本的syscall number+0x40000000
更多绕过思路
根据具体规则,结合syscall调用表找没被过滤的替代函数,比如execveat openv readv writev