第一届“启航杯”网络安全挑战赛 web 全wp
字数 1285 2025-08-22 12:23:12

第一届“启航杯”网络安全挑战赛Web题目全解析

Easy_include题目解析

题目描述

简单文件包含漏洞利用题目

解题步骤

  1. 初始尝试

    • 尝试使用伪协议input但没有效果
    • 转而尝试data伪协议成功
  2. 环境变量读取

    • 在GZ平台上,flag通常存在于环境变量中
    • 尝试读取/proc/self/environ文件
  3. 目录遍历

    • 根目录没有flag
    • 尝试读取/flag文件
    • 尝试读取/flag.php文件

关键知识点

  • 文件包含漏洞利用
  • PHP伪协议使用(data://)
  • Linux环境变量读取方法
  • 常见flag存放位置

Web_IP题目解析

题目描述

IP相关的Web题目

解题步骤

  1. 初始访问

    • 访问/flag得到IP信息
    • 访问/hint没有返回内容
  2. 漏洞利用

    • 识别为Smarty模板注入漏洞
    • 通过模板注入获取flag

关键知识点

  • Smarty模板引擎
  • 模板注入漏洞原理
  • 常见信息泄露路径

Web_pop题目解析

题目描述

PHP反序列化题目

解题步骤

  1. 源码分析
    • 目标是触发__invoke魔术方法
    • 构造特定的反序列化链

关键知识点

  • PHP反序列化漏洞
  • 魔术方法__invoke的触发条件
  • POP链构造技术

PCREMagic题目解析

题目描述

文件上传题目

解题步骤

  1. 文件上传

    • 先编写前端文件上传页面
    • 绕过WAF防护(使用短标签<?
  2. 路径获取

    • 通过抓包获取上传文件路径

关键知识点

  • 文件上传漏洞利用
  • WAF绕过技术(PHP短标签)
  • 请求拦截与路径发现

教学总结

文件包含漏洞

  1. 常用伪协议:

    • php://input - 访问原始POST数据
    • data:// - 数据流封装器
    • phar:// - PHP归档流
  2. 敏感文件路径:

    • /proc/self/environ - 环境变量
    • /etc/passwd - 用户账户信息
    • /flag, /flag.txt, /flag.php - 常见flag位置

模板注入

  1. 识别特征:

    • 使用Smarty、Twig等模板引擎
    • 用户输入直接嵌入模板
  2. 利用方法:

    • 通过{system('id')}执行命令
    • 读取配置文件获取敏感信息

反序列化漏洞

  1. 魔术方法:

    • __wakeup() - 反序列化时调用
    • __destruct() - 对象销毁时调用
    • __invoke() - 对象作为函数调用时触发
  2. POP链构造:

    • 分析类之间的调用关系
    • 寻找从起点到危险方法的调用链

文件上传绕过

  1. WAF绕过技巧:

    • 修改Content-Type
    • 使用短标签<?
    • 添加垃圾数据干扰检测
    • 双扩展名绕过(如shell.php.jpg
  2. 路径获取:

    • 检查响应头Location字段
    • 分析返回的HTML内容
    • 目录爆破尝试

防御建议

  1. 文件包含:

    • 禁用危险伪协议
    • 白名单限制包含文件路径
  2. 模板注入:

    • 严格过滤用户输入
    • 使用安全的模板渲染方式
  3. 反序列化:

    • 避免反序列化用户输入
    • 使用签名验证序列化数据
  4. 文件上传:

    • 限制上传文件类型
    • 存储时重命名文件
    • 禁用上传文件执行权限
第一届“启航杯”网络安全挑战赛Web题目全解析 Easy_ include题目解析 题目描述 简单文件包含漏洞利用题目 解题步骤 初始尝试 : 尝试使用伪协议 input 但没有效果 转而尝试 data 伪协议成功 环境变量读取 : 在GZ平台上,flag通常存在于环境变量中 尝试读取 /proc/self/environ 文件 目录遍历 : 根目录没有flag 尝试读取 /flag 文件 尝试读取 /flag.php 文件 关键知识点 文件包含漏洞利用 PHP伪协议使用(data://) Linux环境变量读取方法 常见flag存放位置 Web_ IP题目解析 题目描述 IP相关的Web题目 解题步骤 初始访问 : 访问 /flag 得到IP信息 访问 /hint 没有返回内容 漏洞利用 : 识别为Smarty模板注入漏洞 通过模板注入获取flag 关键知识点 Smarty模板引擎 模板注入漏洞原理 常见信息泄露路径 Web_ pop题目解析 题目描述 PHP反序列化题目 解题步骤 源码分析 : 目标是触发 __invoke 魔术方法 构造特定的反序列化链 关键知识点 PHP反序列化漏洞 魔术方法 __invoke 的触发条件 POP链构造技术 PCREMagic题目解析 题目描述 文件上传题目 解题步骤 文件上传 : 先编写前端文件上传页面 绕过WAF防护(使用短标签 <? ) 路径获取 : 通过抓包获取上传文件路径 关键知识点 文件上传漏洞利用 WAF绕过技术(PHP短标签) 请求拦截与路径发现 教学总结 文件包含漏洞 常用伪协议: php://input - 访问原始POST数据 data:// - 数据流封装器 phar:// - PHP归档流 敏感文件路径: /proc/self/environ - 环境变量 /etc/passwd - 用户账户信息 /flag , /flag.txt , /flag.php - 常见flag位置 模板注入 识别特征: 使用Smarty、Twig等模板引擎 用户输入直接嵌入模板 利用方法: 通过 {system('id')} 执行命令 读取配置文件获取敏感信息 反序列化漏洞 魔术方法: __wakeup() - 反序列化时调用 __destruct() - 对象销毁时调用 __invoke() - 对象作为函数调用时触发 POP链构造: 分析类之间的调用关系 寻找从起点到危险方法的调用链 文件上传绕过 WAF绕过技巧: 修改Content-Type 使用短标签 <? 添加垃圾数据干扰检测 双扩展名绕过(如 shell.php.jpg ) 路径获取: 检查响应头Location字段 分析返回的HTML内容 目录爆破尝试 防御建议 文件包含: 禁用危险伪协议 白名单限制包含文件路径 模板注入: 严格过滤用户输入 使用安全的模板渲染方式 反序列化: 避免反序列化用户输入 使用签名验证序列化数据 文件上传: 限制上传文件类型 存储时重命名文件 禁用上传文件执行权限