开题有个提示
按要求在/cmd路由POST一个shit试试。
它提示文件在$PATH变量中未找到,path的翻译是路径,文件和路径,很容易让人联想到/usr/bin/目录下的所有用户都可用的应用程序(绝对路径执行命令)
(25条消息) 关于Linux服务器里 /usr/bin 目录和 /usr/local/bin目录_/usr/local/bin是什么路径_编程本就是逆天而行的博客-CSDN博客
/bin 存放所有用户皆可用的系统程序,系统启动或者系统修复时可用(在没有挂载 /usr 目录时就可以使用) /sbin 存放超级用户才能使用的系统程序 /usr/bin 存放所有用户都可用的应用程序 /usr/sbin 存放超级用户才能使用的应用程序 /usr/local/bin 存放所有用户都可用的与本地机器无关的程序 /usr/local/sbin 存放超级用户才能使用的与本地机器无关的程序
我们输入/usr/bin/sudo可以发现,sudo命令是可以用的
此时,我们再输入/usr/bin/sudo -l即我们平时在终端输入的sudo -l:列出目前用户可执行与无法执行的指令。
(25条消息) su、sudo、sudo su、sudo -i sudo -l的用法和区别_mutou990的博客-CSDN博客
我们可以发现,当前我们可用find命令,并且无需输入密码。
此时我们很容易想到sudo find提权。
执行find命令的时候会自动以root身份执行。
find 命令提权 - 内向是一种性格 - 博客园 (cnblogs.com)
(25条消息) find基础命令与提权教程_find提权_hyled-Ava的博客-CSDN博客
payload:
shit=/usr/bin/sudo find /flag -exec cat /flag \; shit=/usr/bin/sudo find /usr/bin/sudo -exec cat /flag \; shit=/usr/bin/sudo find /usr/bin/find -exec cat /flag \; # find (一个路径或文件,必须存在) -exec 执行命令 \;(\; 是-exec 参数的结尾标志)