nnonkey k1n9的博客

当你为错过太阳而哭泣时,你也要再错过群星了——泰戈尔​

[HZNUCTF 2023 final]ezgo

前言

教练我想拿驾照!!!!!一天一道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

2024-01-24T09:24:40.png
查看find权限

ls -alh /usr/bin/find

2024-01-24T09:25:48.png
使用find命令查看拥有suid权限的文件

find / -perm -u=s -type f 2>/dev/null

可以看到是具有root权限的
2024-01-24T09:20:40.png
使用exec查看当前用户

find text -exec "whoami" \; #注意得要个text文件才行,不然报错

2024-01-24T09:23:25.png

开始做题

我们可以看到2024-01-24T09:28:48.png
本题find是有root权限的,直接执行命令就好了
2024-01-24T09:30:04.png

本原创文章未经允许不得转载 | 当前页面:nnonkey k1n9的博客 » [HZNUCTF 2023 final]ezgo

评论