前言
教练我想拿驾照!!!!!一天一道ctf,启动。
解题
进去提示很明显直接到执行命令的界面
我们输入1,回显为"1": executable file not found in $PATH
我们随便加个path
path的学习
/bin 存放所有用户皆可用的系统程序,系统启动或者系统修复时可用(在没有挂载 /usr 目录时就可以使用)
/usr/bin 存放所有用户都可用的应用程序
/usr/sbin 存放超级用户才能使用的应用程序
/usr/local/bin 存放所有用户都可用的与本地机器无关的程序
输入/bin/ls,回显成功,发现了flag,但是cat flag确提示权限不足。
要提权,但是自己不会一点,果断wp,学学提权
我们输入/usr/bin/sudo可以发现,sudo命令是可以用的,看wp的意思,sudo应该是常见的一种提权方式
sudo命令的学习
sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。
下面是比较重要的选项
-l 列出目前用户可执行与无法执行的指令。
-s 执行指定的shell。
[sudo !!]以root权限执行上一条命令。
[sudo su -]切换root身份,携带当前用户环境变量。
一般在这些地方
/etc/sudoers
/etc/init.d/sudo
/etc/pam.d/sudo
/var/lib/sudo
/usr/share/doc/sudo
/usr/share/lintian/overrides/sudo
/usr/share/bash-completion/completions/sudo
/usr/bin/sudo
/usr/lib/sudo
find提权的学习
查看find位置
which find
查看find权限
ls -alh /usr/bin/find
使用find命令查看拥有suid权限的文件
find / -perm -u=s -type f 2>/dev/null
可以看到是具有root权限的
使用exec查看当前用户
find text -exec "whoami" \; #注意得要个text文件才行,不然报错
开始做题
我们可以看到
本题find是有root权限的,直接执行命令就好了