type
status
date
slug
summary
tags
category
icon
password
shellcodemaster
关于shellcode加上了sandbox限制,需要绕过的情况,这里有一篇博客讲的很好:
他把大多数的sandbox的情况都讲好了,我们只需要根据这篇博客进行利用就行
这个题权限如下:
NX开启
我们查看源码
发现就是一个纯考察shellcode的情况,同时我们查看seccomp:
发现主要是read和execve被禁用了,但是open和write还是可以被利用的
这样就对应到了read禁用情况,可以使用mmap进行替代
sys_mmap
是Linux内核中实现内存映射(Memory Mapping)功能的系统调用之一。它主要用于申请内存空间、将磁盘上的文件映射到内存中,函数原型如下:addr
:想要写入,或者说是映射的地址,这里甚至可以直接使用0x10000这种地址(可能是因为这题比较简单?wp也是直接用了0x2333000这种地址,很短的地址)
len
:写入长度
prot
:权限,7代表rwx,应该也是rwx-> 4:2:1
的结构
flags
:0x10表示映射文件MAP_FILE
,0x2表示私有映射MAP_PRIVATE
,这里用0x12就行
fd
:就是fd
pgoff
:偏移量,一般设0
根据这个利用,我们可以直接写出payload