Polar 这又是一个上传

news/2024/5/20 0:06:07 标签: CTF, Web安全, PHP, tty, 提权, 文件上传

Polar 这又是一个上传

开局还是一个文件上传界面

image-20231206101628308

有前端后缀检查,这个好绕,抓包改后缀就行

image-20231206101707462

绕过后burp可以直接传一个php上去

image-20231206102108623

getshell

image-20231206102101823

但是无法cat flag,感觉权限不够,需要提权

查找具有suid权限的命令

1=system('find / -user root -perm -4000 -print 2>/dev/null');

image-20231206102422153

发现有pkexec。polkit是一个授权管理器,其系统架构由授权和身份验证代理组成,pkexec是其中polkit的其中一个工具,他的作用有点类似于sudo,允许用户以另一个用户身份执行命令

一般不确定是否有提权的时候,我都会上https://gtfobins.github.io/看一下。

看一下版本:

image-20231206111928655

存在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目录还是可以读写的。

image-20231218215044708

/tmp目录有读写权限,右键上传文件。

image-20231218215645010

POC下载地址:

berdav/CVE-2021-4034: CVE-2021-4034 1day (github.com)

奶奶滴,poc解压不了,可以本地解压后上传单个文件,但是执行poc无效,奶奶滴。(发癫)

其他倒是还好,POC无效真的受不了。。。。


大B老师说没完整tty(再次表达感谢~)

如何判断tty是否完整:

image-20231219233225703

image-20231219233249183

为什么没完整tty,会影响提权呢?

因为完整的tty是很多命令执行的前提,比如sudo,不是完整的tty是不能sudo的(感谢叶哥的指导),以下是一些必须依靠tty的命令。

  1. passwd: 修改用户密码时,需要在TTY中输入当前密码和新密码。
  2. su / sudo: 切换用户或以管理员权限执行命令时,通常需要在TTY中输入相应的密码。
  3. shutdown / reboot: 关机或重启系统时,可能需要在TTY中输入管理员密码或确认操作。
  4. top / htop: 查看系统进程和资源占用情况,这些命令在TTY中显示实时信息。
  5. vim / nano / emacs: 编辑文本文件时,这些文本编辑器通常在TTY中使用。
  6. apt / yum / dnf: Linux 发行版的包管理器,进行软件包安装、更新或删除时需要在TTY中执行。
  7. ssh: 通过终端远程登录到其他计算机时,需要在TTY中输入密码或进行身份验证。
  8. gnome-terminal / konsole / xterm: 在图形界面下打开终端时,这些终端模拟器在TTY中运行。

接下来使用哥斯拉的superterminal,可以直接解决没完整tty的问题

image-20231219224210156

payload:

make
./cve-2021-4034

whoami
tac /flag

image-20231219233915642


http://www.niftyadmin.cn/n/5274519.html

相关文章

redis 7.2.3 官方配置文件 redis.conf sentinel.conf

文章目录 Intro解压配置使用等官方配置文件模板redis.conf 仅配置项redis.conf 完整版(配置项注释)sentinel.conf 仅配置项sentinel.conf 完整版(配置项注释) Intro 在下载页面:https://redis.io/download/ 下载最新版本的redis: https://github.com/re…

vue3虚拟dom和diff算法实现(模仿源码)

手动实现 Vue 3 的虚拟 DOM 和 Diff 算法 Vue 3 引入了许多新的改进和特性,其中之一是对虚拟 DOM (Virtual DOM) 和 Diff 算法的优化。在这篇文章中,我们将通过一个简单的示例来手动实现 Vue 3 风格的虚拟 DOM 和 Diff 算法。 虚拟 DOM 的基础 虚拟 D…

【jupyter notebook】jupyter notebook 调用另一个jupyter notebook 的函数

总结 使用 %run 魔法命令将 Notebook 转换为py文件使用 nbimporter 库手动复制代码优点notebook最前面加上即可最基本方法就跟导入py文件一样,不会被执行一遍快缺点所有的代码都会执行一遍修改原文件就要重新转换,且 从自定义的 .py 文件中导入函数时&a…

MATLAB 主成分分析PCA拟合平面点云 (42)

MATLAB 主成分分析PCA拟合平面点云 (42) 一、算法介绍二、算法实现一、算法介绍 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取技术。它的主要思想是通过线性变换将数据投影到一个新的坐标系,使得在新的坐标系中数据的方差最大化。在3D点…

502 Bad Gateway with nginx + apache + subversion + ssl

svn commit的时候返回 unexpected http status 502 bad gateway on解决方法,参考:https://stackoverflow.com/questions/2479346/502-bad-gateway-with-nginx-apache-subversion-ssl-svn-copy 在nginx中代理svn中添加 location /svn {set $fixed_dest…

设计模式(三)-结构型模式(5)-外观模式

一、为何需要外观模式(Facade)? 要实现一个大功能,我们需要将它拆分成多个子系统。然后每个子系统所实现的功能,就由一个称为外观的高层功能模块来调用。这种设计方式就称为外观模式。该模式在开发时常常被使用过,所…

tensorflow入门 自定义模型

前面说了自定义的层,接下来自定义模型,我们以下图为例子 这个模型没啥意义,单纯是为了写代码实现这个模型 首先呢,我们看有几个部分,dense不需要我们实现了,我们就实现Res,为了实现那个*3,我们…

SpringCloud源码探析(十二)-基于SpringBoot开发自定义中间件

1.概述 中间件是一种介于操作系统和应用软件之间,为应用软件提供服务功能的软件,按功能划分有消息中间件(Kafka、RocketMQ)、通信中间件(RPC通信中间件,dubbo等),应用服务器等。中间…