开局还是一个文件上传界面
有前端后缀检查,这个好绕,抓包改后缀就行
绕过后burp可以直接传一个php上去
getshell
但是无法cat flag,感觉权限不够,需要提权。
查找具有suid权限的命令
1=system('find / -user root -perm -4000 -print 2>/dev/null');
发现有pkexec
。polkit是一个授权管理器,其系统架构由授权和身份验证代理组成,pkexec是其中polkit的其中一个工具,他的作用有点类似于sudo,允许用户以另一个用户身份执行命令
一般不确定是否有提权的时候,我都会上https://gtfobins.github.io/
看一下。
看一下版本:
存在CVE-2021-4034 pkexec 本地提权漏洞,可以将用户身份直接变为root
2009年5月至今发布的所有 Polkit 版本都受这个漏洞影响。
注:Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的Linux系统均受影响。
底层原理不过了,直接利用,可以看看的一些文章:
【CVE-2021-4034】 漏洞详细原理以及复现,polkit的pkexec中的本地提权漏洞-CSDN博客
CVE-2021-4034 深入分析及漏洞复现 - 先知社区 (aliyun.com)
CVE-2021-4034 pkexec 本地提权漏洞利用解析-安全客 - 安全资讯平台 (anquanke.com)
CVE-2021-4034 polkit(pkexec)提权漏洞复现-腾讯云开发者社区-腾讯云 (tencent.com)
蚁剑上马,不知道哪里出问题了,目录一直没权限读取,好在/tmp
目录还是可以读写的。
/tmp
目录有读写权限,右键上传文件。
POC下载地址:
奶奶滴,poc解压不了,可以本地解压后上传单个文件,但是执行poc无效,奶奶滴。(发癫)
其他倒是还好,POC无效真的受不了。。。。
大B老师说没完整tty
(再次表达感谢~)
如何判断tty是否完整:
为什么没完整tty,会影响提权呢?
因为完整的tty是很多命令执行的前提,比如sudo,不是完整的tty是不能sudo的(感谢叶哥的指导),以下是一些必须依靠tty的命令。
- passwd: 修改用户密码时,需要在TTY中输入当前密码和新密码。
- su / sudo: 切换用户或以管理员权限执行命令时,通常需要在TTY中输入相应的密码。
- shutdown / reboot: 关机或重启系统时,可能需要在TTY中输入管理员密码或确认操作。
- top / htop: 查看系统进程和资源占用情况,这些命令在TTY中显示实时信息。
- vim / nano / emacs: 编辑文本文件时,这些文本编辑器通常在TTY中使用。
- apt / yum / dnf: Linux 发行版的包管理器,进行软件包安装、更新或删除时需要在TTY中执行。
- ssh: 通过终端远程登录到其他计算机时,需要在TTY中输入密码或进行身份验证。
- gnome-terminal / konsole / xterm: 在图形界面下打开终端时,这些终端模拟器在TTY中运行。
接下来使用哥斯拉的superterminal
,可以直接解决没完整tty的问题
payload:
make
./cve-2021-4034
whoami
tac /flag