Oopsie【hack the box】

Oopsie

解题流程
文件上传

首先开启机器后,我们先使用 nmap -sC -SV来扫描一下IP地址:

-sC:使用 Nmap 的默认脚本扫描(通常是 NSE 脚本,Nmap Scripting Engine)。这个选项会自动执行一系列常见的脚本,进行更为详细的探测,比如检查服务版本、漏洞扫描、系统信息等。

-sV:探测服务版本。这会使 Nmap 在扫描时尝试识别目标主机上运行的服务及其版本信息。

image-20250108134914420

可以看到开放了两个端口:22和80端口,既然开放了80端口,说明我们可以使用web浏览器进行访问。

那么我们此时使用kali自带的火狐浏览器进行访问,访问对应的IP地址,显示页面如下:

image-20250108135513872

页面继续往下划,我们看到了这样的一段话,我们需要登录才能访问这个访问:

image-20250108135643408

那么此时我们就可以猜到这个页面应该应该是存在子目录能够进行登录操作的,那么此时我们就需要找到这个子目录。此时我们我们使用burpsuit自带的抓包功能进行看一下页面的子目录有哪些,由于burpsuit是kali自带的,操作起来也方便。为了方便操作,这里我直接打开burpsuit自带的浏览器:

image-20250108140437674

输入目标IP之后,burpsuit可以不进行拦截操作,因为burpsuit会自动收集打开过程中的数据包,就在旁边的 HTTP history中,抓到的数据包如下所示:

image-20250108140751653

image-20250108141717291

此时我们看到有个 cdn-cgi/login的目录,很像我们需要的登录目录,那么此时我们访问一下这个目录,显示页面如下,果真就是我们想要的登录窗口:

image-20250108141246160

尝试了一些弱口令爆破之后,没有成功,发现下方还有一个 Login as Guest的选项,我们可以当做游客进行登录:

image-20250108141948550

进入之后,我们就可以看到游客界面的导航栏了

image-20250108142115771

查看导航栏,发现有一个 uploads的栏目,难道可以进行文件上传吗?我们点进去看看,发现需要超级管理员用户才可以访问:

image-20250108142456089

那么我们就需要想办法来提升用户的权限,有一个方法就是右键页面,然后打开检查元素:

image-20250108145000214

然后我们就可以查看用户的cookie信息,我们观察到,有role=guest 和 user=2233。我们可以假设,如果我们以某种方式知道超级用户的数量admin 作为 user 变量,我们也许能够访问上传页面:

image-20250108145134467

然后返回刚才的 Account栏目信息,根据上面的url信息,发现此时发id=2,那么我们尝试一下id=1会发生什么?

image-20250108145658983

修改id=1,我们成功知道了adminid值,此时我们就可以尝试修改一下cookie值来尝试提高用户的权限:

image-20250108150114631

此时我们修改了cookie的值,然后刷新一下页面,发现我们已经拥有了上传文件的权限:

image-20250108150303723

现在我们已经可以访问上传表单了,我们可以尝试上传 PHP 反向 shell。对于本题,我们将使用 /webshells/php/php-reverse-shell.php,这里提供了下载地址,然后将该PHP文件上传:

image-20250108185051739

好了到了这一步,现在我们需要找到刚刚上传的php文件所在的目录,我们可以自己猜测目录位置,这里我使用gobuster来暴力破解一下目录名:

image-20250108190230114

gobuster一下子就找到了 uploads目录,然后尝试看一下该目录的内容,发现我们没有查看该目录的权限,但是我们可以尝试访问一下我们上传到该目录的文件:

image-20250108190402053

反弹shell

首先,我们建立一个 netcat的连接,如下图所示:

image-20250108190654616

然后我们在网页中访问我们上传的文件的地址:

image-20250109173920415

然后就可以发现我们成功监听到了(这里需要注意的是,我们在此过程的每个页面访问到需要修改cookie值,包括上传和重新访问,否则监听不到呜呜呜,所以推荐上传的过程中每次都使用burpsuit修改一下cookie值):

image-20250109173836977

好,现在我们我们成功拿到shell了,现在为了使页面看起来更加美观,我们使用下述命令:

python3 -c 'import pty;pty.spawn("/bin/bash")'

image-20250109174755643

提升权限

接下来,我们查看一下 .php的文件后缀,看是否有敏感信息泄露,输入命令 find / -type f -name *.php 2>/dev/null

image-20250109175410979

作为用户 www-data,该角色对系统的访问受到限制。由于网站正在使用 PHP 和 SQL,我们可以进一步枚举可能泄露的 Web 目录
或配置错误。经过一番搜索,我们可以在 /var/www/html/cdn-cgi/login目录下找到一些 php 文件。我们可以手动查看所有页面的源代码,也可以尝试搜索使用 grep 工具可以得到有趣的字符串。输入命令:cat * | grep -i passw*

image-20250109180211360

我们确实得到了密码:MEGACORP_4dm1n!! 。我们可以通过以下方式检查系统上的可用用户读取 /etc/passwd 文件,以便我们可以尝试重用此密码,输入 cat /etc/passwd

image-20250109180510975

发现一个可用用户robert,此时我们切换到robert用户,结果发现登录不上…:

怎么判断用户是否可用?

格式:用户名:密码:用户ID:组ID:描述信息:家目录:登录Shell

检查 UID 是否大于等于 1000。

检查登录Shell 是否有效(非 /sbin/nologin/bin/false)。

检查用户的家目录是否存在。

image-20250109181642729

那我们再找找,发现在db.php中找到了密码:

image-20250109181817936

赶紧使用这个密码试一下,没有问题,这个密码是正确的:

image-20250109181940628

然后我们在该用户的主目录找到了一个user.txt文件,我们查看一下,发现了第一个flag:

好了现在还有一个flag应该是在root用户中,我们尝试提权来查看一下。

在运行任何权限提升或枚举脚本之前,让我们检查一下用于提升权限的基本命令sudoid 等权限:

image-20250109182857304

我们观察到用户 robertbugtracker 组的一部分。让我们尝试看看里面是否有任何二进制文件,输入命令:find / -group bugtracker 2>/dev/null

image-20250109183221930

我们发现一个名为 bugtracker 的文件。我们检查它的权限和文件类型ls -la /usr/bin/bugtracker && file /usr/bin/bugtracker

image-20250109183527856

该二进制文件上设置了一个 suid,这是一个很有用的利用路径。

SUID 是一个强大的工具,它允许文件以文件所有者(通常是 root)身份执行,从而使某些需要特权的程序能够由普通用户执行。

当一个文件具有 SUID 权限时,无论哪个用户执行该文件,该文件将以文件所有者的身份运行,而不是以执行文件的用户身份运行。

如果文件的所有者是 root 用户,那么任何人执行该文件时,都会以 root 用户的身份来执行。

然后我们运行该应用程序观察其行为:

image-20250109184736056

该工具接受用户输入作为将使用 cat 命令读取的文件名,但是,它没有指定文件 cat 的完整路径,因此我们可以利用它。
我们将导航到 /tmp 目录并创建一个名为 cat 的文件,其中包含以下内容:

/bin/sh

然后我们设置改文件的执行权限:

chmod +x cat

为了利用这一点,我们可以将 /tmp 目录添加到 PATH 环境变量中,/tmp 目录将被添加到 PATH 变量的最前面:

export PATH=/tmp:$PATH

然后我们检查一下环境变量:

echo $PATH

image-20250109185853751

然后我们再次执行一下该二进制文件,提权成功:

image-20250109190031353

然后我们找到 /root目录下的 root.txt,由于cat查看不了,那我们使用more来查看一下:

image-20250109190454590

最后成功获取root用户的flag。

题目答案
task 1

With what kind of tool can intercept web traffic?(用什么工具可以拦截网络流量?)

答案:proxy

task 2

What is the path to the directory on the webserver that returns a login page?(返回登录页面的网络服务器上的目录路径是什么?)

答案:/cdn-cgi/login

task 3

What can be modified in Firefox to get access to the upload page?(可以在 Firefox 中修改哪些内容才能访问上传页面?)

答案:cookie

task 4

What is the access ID of the admin user?(管理员用户的访问 ID 是什么?)

答案:34322

task 5

On uploading a file, what directory does that file appear in on the server?(上传文件时,该文件出现在服务器上的哪个目录中?)

答案:/uploads

task 6

What is the file that contains the password that is shared with the robert user?(包含与 robert 用户共享的密码的文件是什么?)

答案:db.php

task 7

What executible is run with the option “-group bugtracker” to identify all files owned by the bugtracker group?(使用选项“-group bugtracker”运行什么可执行文件来识别 bugtracker 组拥有的所有文件?)

答案:find

task 8

Regardless of which user starts running the bugtracker executable, what’s user privileges will use to run?(无论哪个用户开始运行 bugtracker 可执行文件,都将使用什么用户权限来运行?)

答案:root

task 9

What SUID stands for?(SUID 代表什么?)

答案:Set owner User ID

task 10

What is the name of the executable being called in an insecure manner?(以不安全方式调用的可执行文件的名称是什么?)

答案:cat

task 11

Submit user flag(提交用户flag)

答案:f2c74ee8db7983851ab2a96a44eb7981

task 12

Submit root flag(提交root的flag)

答案:af13b0bee69f8a877c3faf667f7beacf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机-定时器中断

1、相关知识 振荡周期1/12us; //振荡周期又称 S周期或时钟周期(晶振周期或外加振荡周期)。 状态周期1/6us; 机器周期1us; 指令周期1~4us; ①51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器…

【蓝牙】win11 笔记本电脑连接 hc-06

文章目录 前言步骤 前言 使用电脑通过蓝牙添加串口 步骤 设置 -> 蓝牙和其他设备 点击 显示更多设备 更多蓝牙设置 COM 端口 -> 添加 有可能出现卡顿,等待一会 传出 -> 浏览 点击添加 hc-06,如果没有则点击 再次搜索 确定 添加成…

2 XDMA IP中断

三种中断 1. Legacy 定义:Legacy 中断是传统的中断处理方式,使用物理中断线(例如 IRQ)来传递中断信号。缺点: 中断线数量有限,通常为 16 条,限制了可连接设备的数量。中断处理可能会导致中断风…

【算法】时间复杂度以及O(N^2)的排序

目录 1.常数时间的操作 2.时间复杂度 2.1.以选择排序为例 2.2.O(n^2)从何而来 2.3.冒泡排序 2.3.1.抑或运算 2.4.插入排序 3.二分法 3.1.局部最小 4.递归 4.1.递归行为时间复杂度的估计 1.常数时间的操作 一个操作如果和样本的数据量无关,每次都是固定时…

C# 或 .NetCore 如何使用 NPOI 导出图片到 Excel 文件

今天在本文中,我们将尝试使用NPOI库将图像插入到 Excel 文件的特定位置。请将以下逻辑添加到您的写作方法中,在 Excel 文件中添加图像(JPEG、PNG),我已经有一个示例 jpeg 文件 - Read-write-excel-npoi.jpg ,我们将尝试…

Observability:将 OpenTelemetry 添加到你的 Flask 应用程序

作者:来自 Elastic jessgarson 待办事项列表可以帮助管理与假期计划相关的所有购物和任务。使用 Flask,你可以轻松创建待办事项列表应用程序,并使用 Elastic 作为遥测后端,通过 OpenTelemetry 对其进行监控。 Flask 是一个轻量级…

使用Matplotlib显示中文的方法

1 问题提出 使用图1所示的代码进行matplotlib绘图时,因为其默认不支持中文,此时无法显示正确内容,如图2所示。 图1 matplotlib绘图绘图代码 图2 matplotlib无法显示中文 2 问题解决 2.1 设置全局字体 在图1所示的代码中,第13…

详解opencv resize之INTER_LINEAR和INTER_AREA

一。先简单介绍一下resize的用法 src:输入图, dst:输出图 dsize:输出图的宽高,如果dsize不为空(即宽高都不是0),则以dsize为准进行resize。 fx, fy是放大缩小的比例,是…

UnityDemo-TheBrave-制作笔记

这是我跟着b站up主MStudio的视频学习制作的,大体上没有去做一些更新的东西,这里只是一个总的总结。在文章的最后,我会放上可以游玩该游戏的链接和exe可执行文件,不过没有对游戏内容进行什么加工,只有基本的功能实现罢了…

使用LSTM预测股票收盘价

在金融数据预测中,LSTM(长短期记忆网络)凭借其在时间序列数据建模中的优势,成为了分析股票价格趋势的热门选择。本篇博客将以完整的代码实现为例,展示如何利用LSTM网络对股票收盘价进行预测,并从数据处理到…

模拟SpringIOCAOP

一、IOC容器 Ioc负责创建,管理实例,向使用者提供实例,ioc就像一个工厂一样,称之为Bean工厂 1.1 Bean工厂的作用 先分析一下Bean工厂应具备的行为 1、需要一个获取实例的方法,根据一个参数获取对应的实例 getBean(…

预编译SQL

预编译SQL 预编译SQL是指在数据库应用程序中,SQL语句在执行之前已经通过某种机制(如预编译器)进行了解析、优化和准备,使得实际执行时可以直接使用优化后的执行计划,而不需要每次都重新解析和编译。这么说可能有一些抽…

软件测试预备知识⑥—搭建Web服务器

在软件测试的广阔领域中,搭建Web服务器是一项极为关键的技能。它不仅有助于模拟真实的应用环境,方便我们对Web应用进行全面且深入的测试,还能让测试人员更好地掌控测试场景,提升测试效率与质量。接下来,让我们一同深入…

计算机视觉算法实战——打电话行为检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​​ ​​​​​​​​​​​​​​​ ​​​​​​ ​ 1. 引言✨✨ 随着智能手机的普及,打电话行为检测成为了计算机视…

Linux第二课:LinuxC高级 学习记录day01

0、大纲 0.1、Linux 软件安装,用户管理,进程管理,shell 命令,硬链接和软连接,解压和压缩,功能性语句,结构性语句,分文件,make工具,shell脚本 0.2、C高级 …

ISP流程--去马赛克详解

前言 本期我们将深入讨论ISP流程中的去马赛克处理。我们熟知,彩色图像由一个个像元组成,每个像元又由红、绿、蓝(RGB)三通道构成。而相机传感器只能感知光的强度,无法直接感知光谱信息,即只有亮暗而没有颜色…

阿里云-通义灵码:在 PyCharm 中的强大助力(下)

目录 六.通义灵码在 PyCharm 中的优势与不足 1.优势 (1).提高开发效率 (2).提升代码质量 (3).易于使用 (4).不断学习和改进 2.不足 (1).依赖网络 (2).准确性有待提高 (3).局限性 七.未来发展展望 1.提高准确性和可靠性 2.与其他工具的集成 3.智能化程度的提升 八…

开源项目stable-diffusion-webui部署及生成照片

参考链接 https://www.freedidi.com/13133.html 基础环境部署 python 官网链接 Python Release Python 3.10.6 | Python.org 下载 Python 3.10.6 版本安装包 下载好后双击 点击安装,这里需要选择一下,把环境变量加上。(这里是默认安装到C盘…

【芯片封测学习专栏 -- 单 Die 与 多Die(Chiplet)介绍】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 Overview单个Die(Monolithic Die)多个Die(Chiplet Architecture or Heterogeneous SoC)如何判断一个SoC是…

Windows 安装 Docker 和 Docker Compose

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …