


很明显地用shellcode写,不过不能用一般的shellcode来写,平时的shellcode是用通过系统调用exceve(‘bin/sh’,0,0),正如这道题,seccomp是Linux内核的一项功能,用于限制进程的系统调用
seccomp_init(0LL);是初始化seccomp_init函数
0,1,2,60,分别是允许进程可读,可写,可执行,和退出的系统调用

所以这道题只能用orw的方式获取flag
1 | mmap=0x123000 |
不把orw_payload写到栈上因为其很大

所以只能写到mmap地址上,返回地址让其执行到栈上读入orw-payload到mmap上

1 | jmp_rsp_ret=asm('sub rsp,0x30;jmp rsp') |
实践证明,返回地址不能直接sub rsp,0x30;jmp rsp,得先jmp esp,不然会报错,但我觉得最终的结果都差不多,但是不行。
最后再写入orw_payload就行了
1 | p.sendline(asm(orw_payload)) |
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~