NewStarCTF 2025 Web题目解析与知识点教学
目录
Week 1 题目解析
1.1 multi-headach3
考点: robots.txt协议、HTTP抓包分析
解题步骤:
- 访问
/robots.txt路由,发现提示文件hidden.php - 访问
/hidden.php,发现页面自动跳转到index.php - 使用抓包工具(如Burp Suite)拦截响应,在响应头中发现flag
知识点:
robots.txt是网站告诉搜索引擎哪些页面可以抓取,哪些不能抓取的协议- 页面自动跳转时,重要信息可能存在于HTTP响应头中
- 抓包分析是Web安全测试的基本技能
1.2 strange_login
考点: SQL注入(已知用户名的万能密码)
解题步骤:
- 题目提示
1=1,进入登录界面 - 使用已知用户名的万能密码方式:
- 用户名:
admin(或已知的管理员用户名) - 密码:任意值,如
' or 1=1 --
- 用户名:
- 成功登录获取flag
知识点:
- SQL注入基本原理:通过构造特殊输入改变SQL查询逻辑
- 万能密码原理:
' or 1=1 --使查询条件永远为真 - 注释符
--用于注释掉后续的SQL代码
1.3 宇宙的中心是php
考点: 反调试绕过、代码审计、进制转换绕过
解题步骤:
- 页面禁用开发者工具,通过浏览器设置强制打开
- 发现提示文件
s3kret.php - 访问
s3kret.php获取源码 - 分析代码逻辑:
- 要求POST方式传递
newstar2025参数 - 参数按十进制解析结果不能等于47
- 自动检测进制后解析结果必须等于47
- 要求POST方式传递
- 使用十六进制
0x2F(等于十进制47)绕过检测
知识点:
- 反调试绕过技巧
- PHP进制转换函数:
intval()的进制检测特性 - 十六进制表示法:
0x前缀
1.4 我真得控制你了
考点: 反调试绕过、前端代码审计、弱口令爆破、代码审计
解题步骤:
- 按钮被
shieldOverlay层屏蔽,通过开发者工具控制台移除:document.querySelector('.shieldOverlay').remove(); - 点击启动按钮进入下一关
- 使用弱口令爆破,发现密码
111111可成功登录 - 进入
portal.php分析源码:- GET方式传递
newstar参数 - 参数不能是数组
- 只能包含数字、运算符、括号、空格
- 不能全是数字和空格
eval()计算结果必须为2025
- GET方式传递
- 使用
45*45得到2025
知识点:
- DOM操作绕过前端限制
- 弱口令爆破技术
eval()函数的安全风险- 数学表达式构造技巧
1.5 别笑,你也过不了第二关
考点: 游戏分数篡改、参数伪造
解题步骤:
方法一(直接请求):
// 控制台执行
fetch('/flag.php', {
method: 'POST',
body: 'score=1000000'
})
方法二(游戏内修改):
- 在控制台设置
score为大于1000000的值 - 随便操作游戏等待结束
知识点:
- 前端参数篡改
- Fetch API使用
- 游戏安全机制绕过
1.6 黑客小W的故事(1)
考点: HTTP协议理解、抓包修改
解题步骤:
第一关:
- 抓取游戏请求,发现
hunt包包含count参数 - 将
count从1改为900直接完成要求
第二关 (/Level2_mato):
- GET方式传递
shipin=mogubaozi - POST方式向
guding传参 - 使用DELETE方法传递
chongzi参数
第三关 (/Level3_SheoChallenge):
- 修改User-Agent头:
- 第一次:
CycloneSlash/1. - 第二次:
CycloneSlash/1.1 - 第三次:
DashSlash
- 第一次:
第四关: 直接访问 /Level4_Sly 获取flag
知识点:
- HTTP方法:GET、POST、DELETE
- User-Agent伪造
- 抓包修改技术
Week 2 题目解析
2.1 DD加速器
考点: 命令执行、环境变量读取
解题步骤:
- 直接命令执行查看环境变量
- 在环境变量中找到flag(根目录下的是假flag)
知识点:
- Linux环境变量存储敏感信息
- 命令执行漏洞利用
- 真假flag识别
2.2 真的是签到欸欸
考点: 代码加密、空格绕过
解题步骤:
- 编写代码对要执行的语句进行加密
- 空格被过滤,使用
${IFS}绕过 - POST方式传递加密后的payload
知识点:
- 字符串加密技术
- 空格绕过技巧:
${IFS}、%20、+等 - POST数据传递
2.3 搞点哦润吉吃吃橘
考点: 源码注释信息泄露、表达式计算
解题步骤:
- 查看源码注释,发现账号密码:
Doro/Doro_nJlPVs_@123 - 登录后计算给定的数学表达式
知识点:
- 源码注释信息泄露风险
- 前端认证绕过
- 自动化表达式计算
2.4 白帽小K的故事(1)
考点: 文件上传漏洞、PHP文件解析特性
解题步骤:
- 在页面源代码发现文件上传功能
- 构造请求读取
star.mp3,发现该文件被当作PHP代码执行 - 编写PHP木马保存为
2.mp3上传并读取
知识点:
- 文件上传漏洞
- 文件解析特性:通过修改后缀绕过检测
- PHP木马编写
2.5 小E的管理系统
考点: SQL注入、过滤绕过
解题步骤:
- 输入
2-1查询节点1的结果,判断为数字型注入 - 空格被过滤,使用
%0a(换行符)绕过 - 测试字段数为5
- 逗号被过滤,使用
JOIN语法绕过 - 回显位为1
- 查表:从
sqlite_master读取sql字段 - 在
sys_config表的config_value字段找到flag
详细payload:
' UNION SELECT 1,2,3,4,5 --
' UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d JOIN (SELECT 5)e --
知识点:
- SQL注入类型判断
- 过滤字符绕过技术
- SQLite数据库结构查询
JOIN语法替代逗号
Week 3 题目解析
3.1 小E的秘密计划
考点: 备份文件泄露、Git信息泄露、DS_Store文件分析
解题步骤:
- 访问
/www.zip下载备份源码 - 在目录下的
HEAD文件中发现branch信息 - 查看git记录获取账号密码
- 登录系统
- 下载
.DS_Store文件 - 使用
ds_store_exp工具分析得到flag路径 - 访问该路径获取flag
知识点:
- 备份文件泄露风险
- Git信息泄露
.DS_Store文件分析- 敏感路径发现
3.2 白帽小K的故事(2)
考点: 布尔盲注、过滤绕过
解题步骤:
- 抓包分析正确回显内容特征
- 编写布尔盲注脚本,使用括号绕过空格过滤
- 逐字符提取数据
知识点:
- 布尔盲注原理
- 脚本编写技巧
- 过滤字符绕过
3.3 mirror_gate
考点: .htaccess解析漏洞、文件上传绕过
解题步骤:
- 扫描发现
/uploads目录下的.htaccess文件 - 分析
.htaccess内容:将.webp后缀文件当作PHP解析 - 上传Webshell,修改后缀为
.webp - 绕过内容检测,写入一句话木马
示例木马:
<?php @eval($_POST['cmd']); ?>
知识点:
.htaccess解析漏洞- 文件上传检测绕过
- Webshell编写技巧
3.4 ez_chain
考点: 过滤绕过、编码转换、Base64解码
解题步骤:
- 分析过滤内容黑名单
- 使用
convert.iconv.ASCII.CP037转换编码 - 双重URL编码绕过黑名单
- Base64解码获取结果
知识点:
- 过滤规则分析
- 字符编码转换
- Base64编码特性
3.5 who's ssti
考点: SSTI(服务器端模板注入)
解题步骤:
- 成功调用5个函数触发flag生成条件
知识点:
- SSTI漏洞原理
- 模板引擎函数调用
- 漏洞利用链构造
Week 4 题目解析
4.1 武功秘籍 稻草人cms
考点: CMS漏洞利用、文件上传、Content-Type修改
解题步骤:
- 访问
/dcr/login.htm使用弱口令admin/admin登录 - 添加新闻类别
- 添加新闻时上传PHP木马
- 抓包修改
Content-Type - 查找上传的文件名
- 访问木马文件执行
phpinfo()找到flag
知识点:
- CMS漏洞利用
- 文件上传漏洞
- Content-Type欺骗
- Webshell管理
4.2 小羊走迷宫
考点: 变量名绕过、路径遍历
解题步骤:
- 使用特殊变量名绕过过滤:
ma[ze.path - 构造payload进行路径遍历
- Base64解码结果
知识点:
- 变量名过滤绕过
- 路径遍历漏洞
- 编码解码技巧
4.3 小E的留言板
考点: XSS攻击、Cookie窃取
解题步骤:
- 在VPS上搭建接收Cookie的PHP服务
- 注册账号登录留言板
- 构造XSS payload输入留言框
- 提交报告等待管理员触发
- 获取管理员Cookie
知识点:
- XSS攻击原理
- Cookie窃取技术
- 外部服务器搭建
- 攻击链构造
4.4 sqlupload
考点: 文件上传漏洞、正则绕过、文件写入
解题步骤:
- 编写一句话木马
- 上传时修改文件名为木马内容
- 利用
getFileList.php的正则漏洞(只包含upload_time或id) - 向网站根目录写入木马文件
- 访问执行获取权限
知识点:
- 文件上传技巧
- 正则表达式漏洞
- 文件系统操作
- Webshell连接
4.5 ssti在哪里
考点: SSTI、Gopher协议、内网渗透
解题步骤:
- 分析服务架构:Web服务(80/25036) → app.py(5000) → interal_web.py(5001)
- 使用Gopher协议进行POST传参
- 对
name参数进行模板注入 - 读取环境变量获取flag
知识点:
- 复杂网络架构分析
- Gopher协议利用
- 内网服务渗透
- 高级SSTI技巧
Week 5 题目解析
5.1 小W和小K的故事(最终章)
考点: 随机数预测、原型链污染、模板注入
解题步骤:
- 分析
app.js发现随机数种子为114514 - 编写Python脚本预测admin密码:
XrfGpmeEFZmz8NDZ - 登录管理后台
- 利用原型链污染(CVE-2019-10744)+ EJS 3.1.6模板引擎RCE
- 访问EJS页面触发模板渲染执行代码
知识点:
- 随机数安全
- 原型链污染漏洞
- 模板引擎RCE
- 漏洞链组合利用
5.2 眼熟的计算器
考点: 反编译、动态类加载、Base64编码绕过
解题步骤:
- 使用jadx反编译APK获取源码
- 分析黑名单检测机制
- 使用
type()动态引用类绕过检测 - Base64编码绕过哈希码检测
- 解码获取结果
知识点:
- Android应用反编译
- 动态类加载技术
- 检测机制绕过
- Base64编码应用
5.3 废弃的网站
考点: JWT伪造、竞争条件、SSTI
解题步骤:
- 访问admin页面获取服务器运行时间
- 计算JWT签名密钥伪造管理员令牌
- 利用竞争条件漏洞:
- 多线程同时发送正常请求和恶意请求
- 在JWT验证后、渲染页面前的时间窗口覆盖用户数据
- 触发SSTI执行系统命令
知识点:
- JWT安全机制
- 竞争条件漏洞
- 时间窗口攻击
- 高级SSTI利用
5.4 二进制博客
考点: 反序列化、文件读取、过滤器封装
解题步骤:
- 注册账号登录系统
- 发布并删除博客,发现
/blog_manager.php路由 - 上传
.dat文件触发反序列化 - 利用
template参数进行文件读取 - 使用过滤器封装绕过限制:
php://filter/convert.base64-encode/resource=flag.php - Base64解码获取flag内容
知识点:
- PHP反序列化漏洞
- 文件读取技巧
- 过滤器封装技术
- Base64编码解码
总结
本教学文档详细分析了NewStarCTF 2025 Web方向的所有题目,涵盖了从基础到高级的各类Web安全知识点。重点技术包括:
- 信息收集: robots.txt分析、源码注释、备份文件发现
- 注入漏洞: SQL注入、SSTI、命令注入
- 文件操作: 文件上传、文件读取、文件解析漏洞
- 认证绕过: 弱口令、JWT伪造、会话管理
- 协议分析: HTTP协议、Gopher协议、编码协议
- 前端安全: XSS、DOM操作、参数篡改
- 服务端安全: 竞争条件、随机数安全、原型链污染
每个题目都提供了详细的解题步骤和相关的知识点说明,适合不同层次的安全爱好者学习和参考。在实际应用中,这些技术需要结合具体场景灵活运用,并始终遵守法律法规和道德准则。