Skip to content

Latest commit

 

History

History
41 lines (30 loc) · 1.62 KB

Level00——寻找特权程序.org

File metadata and controls

41 lines (30 loc) · 1.62 KB

根据题目描述,本关需要在系统中搜索一个设置了SUID的程序,这个程序将是以flag00身份运行的。

要完成本关,需要掌握find命令的使用。find命令的格式如下:

find [path...] [expression]

expression可以跟选项。更加具体的用法,请通过百度或者man学习。根据题目的要求,我们需要查找一个所属于flag00账号的可执行程序。find有个选项叫-uid,后面跟用户的uid值。每个Linux账号都对应一个uid,且不重复。账户的UID可以用命令`id`查看:

flag00@nebula:~$ id flag00
uid=999(flag00) gid=999(flag00) groups=999(flag00)

得到flag00的UID为999,接着从根目录“/”开始搜索这个神秘的程序:

level00@nebula:~$ find / -uid 999 2>/dev/null
/home/flag00
/home/flag00/.profile
/home/flag00/.bash_logout
/home/flag00/.bashrc
/bin/.../flag00

由于当前用户是level00,在进一些没有权限进入的目录进行搜索的时候,是会出错的,所以用2>/dev/null将错误输出到/dev/null这个空白设备里。Linux标准输入、标准错误输出分别对应0、1和2。

搜索结果中,~/bin/…/flag00~ 看上去比较特殊,应该就是我们要的程序。执行下面命令获得权限:

level00@nebula:~$ /bin/.../flag00
Congrats, now run getflag to get your flag!

按照提示,我们已经拥有flag00的权限了,执行getflag试试:

flag00@nebula:~$ getflag
You have successfully executed getflag on a target account