2025湖南省程序设计网络攻防线下赛部分赛题
字数 2012 2025-11-21 13:21:15

2025湖南省程序设计网络攻防线下赛技术解析与教学文档

比赛概述

本次比赛采用CTF(Capture The Flag)竞赛模式,新增了打靶机并修复靶机源码的环节,这是与传统CTF比赛的主要区别。比赛包含Web安全、Misc杂项、Reverse逆向工程、Pwn二进制漏洞利用和Crypto密码学等多个方向的题目。

比赛环境特点

平台问题与应对策略

  • 环境卡顿:靶机环境响应延迟严重,页面加载缓慢
  • 平台故障:修复文件上传检测功能出现故障,导致1个多小时无法正常提交
  • 提交限制:漏洞修复部分限定提交次数为10次
  • 漏洞提示缺失:题目未明确提示具体漏洞位置,增加了测试难度

教学建议:在实际比赛中应准备多套解决方案,遇到平台问题时保持耐心,合理分配尝试次数。

Web-login 题目详解

漏洞发现过程

  1. 初始探测

    • 目标:登录框界面
    • 尝试弱密码:admin/admin
    • 抓包分析响应信息
  2. 关键线索发现

    • 响应包Server字段显示"Caddy"
    • 尝试使用Caddy作为用户名或密码
  3. 身份验证绕过

    • 成功使用admin/Caddy组合登录
    • 获得JWT令牌

JWT令牌攻击

  1. 权限提升检测

    • 访问/admin路由提示权限不足
    • 需要admin权限
  2. 密钥爆破

    • 使用fscan工具(无影)的JWT密钥爆破功能
    • 成功获取加密密钥
  3. 令牌伪造

    • 修改JWT中的user字段为admin
    • 重新签名令牌
    • 访问/admin路由获取flag

技术要点:JWT令牌结构理解、密钥爆破技术、令牌伪造方法

Misc-pdf 题目解析

多阶段信息获取技术

  1. 第一部分信息提取

    • 方法:将PDF文件拖入记事本
    • 技术:文件格式分析,文本内容提取
  2. 第二部分信息提取

    • 方法:使用strings命令
    • 命令示例:strings file.pdf | grep -i flag
    • 技术:二进制文件中可读字符串提取
  3. 第三部分信息提取

    • 方法:使用foremost工具进行文件分离
    • 命令示例:foremost -i file.pdf
    • 技术:文件雕刻,隐藏内容提取
    • 结果:提取出包含flag的PDF文件

关键技术:文件格式分析、数据雕刻、多层隐写技术

AWD-Cat Shop 综合靶场

初始渗透阶段

  1. 身份验证绕过

    • 弱密码:admin/admin123
    • 直接获得管理员权限
  2. SQL注入漏洞利用

    • 漏洞位置:搜索功能(search参数)
    • 技术路线:
      • 单引号测试:' 产生报错信息
      • 字段数探测:order by 确定字段数为9
      • 联合查询注入:union select 构造有效载荷
  3. 文件读取攻击

    • 利用load_file()函数读取系统文件
    • 直接读取flag文件:union select 1,2,3,4,5,6,7,load_file('/flag'),9

权限维持与源码获取

  1. 文件上传漏洞

    • 位置:管理员功能中的文件上传点
    • 攻击:上传PHP webshell
    • 结果:获得服务器控制权
  2. 源码下载

    • 通过webshell下载完整应用程序源码
    • 为漏洞修复阶段做准备

漏洞修复详解

Fix1:任意文件读取漏洞

漏洞位置:index.php文件
漏洞代码

// 存在文件读取功能的危险代码
$file = $_GET['file'];
readfile($file);

修复方案

  • 删除或严格过滤文件读取功能
  • 添加白名单限制可访问文件
  • 实施路径遍历防护

Fix2:SQL注入漏洞

漏洞位置:view_product.php
漏洞代码

$id = $_GET['id'];
$sql = "SELECT * FROM products WHERE id = " . $id;

修复方案

// 使用参数化查询或强制类型转换
$id = intval($_GET['id']);
$sql = "SELECT * FROM products WHERE id = " . $id;

Fix3:硬编码凭证漏洞

漏洞位置:auth.php
漏洞代码

// 硬编码的管理员凭证
if($username == 'admin' && $password == 'admin123') {
    // 授予管理员权限
}

修复方案

  • 删除硬编码凭证
  • 实现数据库验证机制
  • 添加强密码策略

Fix4:文件上传漏洞

漏洞位置:文件上传功能
漏洞特征:无严格文件类型验证

修复方案

// 严格的文件类型验证
$allowed_types = ['image/jpeg', 'image/png', 'image/gif'];
$file_type = $_FILES['file']['type'];

if(!in_array($file_type, $allowed_types)) {
    die('文件类型不允许');
}

// 文件扩展名验证
$allowed_extensions = ['jpg', 'jpeg', 'png', 'gif'];
$file_extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));

if(!in_array($file_extension, $allowed_extensions)) {
    die('文件扩展名不允许');
}

Fix5:后门文件清除

漏洞位置:可疑的后门文件
识别特征:非常规文件、隐蔽的恶意代码

修复方案

  • 全面扫描项目文件
  • 删除所有可疑的后门文件
  • 验证文件完整性哈希值

比赛策略总结

攻击阶段策略

  1. 信息收集优先:全面探测攻击面
  2. 漏洞验证有序:从低风险到高风险逐步测试
  3. 权限提升系统化:从普通用户到管理员权限的完整链条

防御修复策略

  1. 漏洞定位准确:通过代码审计快速定位问题
  2. 修复方案可靠:确保修复彻底且不引入新问题
  3. 测试验证全面:修复后进行全面功能测试

团队协作要点

  1. 分工明确:攻击与防御任务分离
  2. 信息共享:及时同步发现的漏洞和修复方案
  3. 时间管理:合理分配攻击和修复时间

技术工具推荐

漏洞探测工具

  • SQL注入:sqlmap、自定义脚本
  • JWT攻击:jwt_tool、fscan(无影)
  • 文件分析:strings、foremost、binwalk

修复验证工具

  • 代码审计:手动审查+自动化工具
  • 功能测试:Postman、自定义测试用例
  • 安全扫描:静态代码分析工具

本教学文档详细分析了2025湖南省程序设计网络攻防线下赛的技术要点和解题思路,为后续类似比赛提供了完整的技术参考和实战指导。

2025湖南省程序设计网络攻防线下赛技术解析与教学文档 比赛概述 本次比赛采用CTF(Capture The Flag)竞赛模式,新增了打靶机并修复靶机源码的环节,这是与传统CTF比赛的主要区别。比赛包含Web安全、Misc杂项、Reverse逆向工程、Pwn二进制漏洞利用和Crypto密码学等多个方向的题目。 比赛环境特点 平台问题与应对策略 环境卡顿 :靶机环境响应延迟严重,页面加载缓慢 平台故障 :修复文件上传检测功能出现故障,导致1个多小时无法正常提交 提交限制 :漏洞修复部分限定提交次数为10次 漏洞提示缺失 :题目未明确提示具体漏洞位置,增加了测试难度 教学建议 :在实际比赛中应准备多套解决方案,遇到平台问题时保持耐心,合理分配尝试次数。 Web-login 题目详解 漏洞发现过程 初始探测 目标:登录框界面 尝试弱密码:admin/admin 抓包分析响应信息 关键线索发现 响应包Server字段显示"Caddy" 尝试使用Caddy作为用户名或密码 身份验证绕过 成功使用admin/Caddy组合登录 获得JWT令牌 JWT令牌攻击 权限提升检测 访问/admin路由提示权限不足 需要admin权限 密钥爆破 使用fscan工具(无影)的JWT密钥爆破功能 成功获取加密密钥 令牌伪造 修改JWT中的user字段为admin 重新签名令牌 访问/admin路由获取flag 技术要点 :JWT令牌结构理解、密钥爆破技术、令牌伪造方法 Misc-pdf 题目解析 多阶段信息获取技术 第一部分信息提取 方法:将PDF文件拖入记事本 技术:文件格式分析,文本内容提取 第二部分信息提取 方法:使用strings命令 命令示例: strings file.pdf | grep -i flag 技术:二进制文件中可读字符串提取 第三部分信息提取 方法:使用foremost工具进行文件分离 命令示例: foremost -i file.pdf 技术:文件雕刻,隐藏内容提取 结果:提取出包含flag的PDF文件 关键技术 :文件格式分析、数据雕刻、多层隐写技术 AWD-Cat Shop 综合靶场 初始渗透阶段 身份验证绕过 弱密码:admin/admin123 直接获得管理员权限 SQL注入漏洞利用 漏洞位置:搜索功能(search参数) 技术路线: 单引号测试: ' 产生报错信息 字段数探测: order by 确定字段数为9 联合查询注入: union select 构造有效载荷 文件读取攻击 利用load_ file()函数读取系统文件 直接读取flag文件: union select 1,2,3,4,5,6,7,load_file('/flag'),9 权限维持与源码获取 文件上传漏洞 位置:管理员功能中的文件上传点 攻击:上传PHP webshell 结果:获得服务器控制权 源码下载 通过webshell下载完整应用程序源码 为漏洞修复阶段做准备 漏洞修复详解 Fix1:任意文件读取漏洞 漏洞位置 :index.php文件 漏洞代码 : 修复方案 : 删除或严格过滤文件读取功能 添加白名单限制可访问文件 实施路径遍历防护 Fix2:SQL注入漏洞 漏洞位置 :view_ product.php 漏洞代码 : 修复方案 : Fix3:硬编码凭证漏洞 漏洞位置 :auth.php 漏洞代码 : 修复方案 : 删除硬编码凭证 实现数据库验证机制 添加强密码策略 Fix4:文件上传漏洞 漏洞位置 :文件上传功能 漏洞特征 :无严格文件类型验证 修复方案 : Fix5:后门文件清除 漏洞位置 :可疑的后门文件 识别特征 :非常规文件、隐蔽的恶意代码 修复方案 : 全面扫描项目文件 删除所有可疑的后门文件 验证文件完整性哈希值 比赛策略总结 攻击阶段策略 信息收集优先 :全面探测攻击面 漏洞验证有序 :从低风险到高风险逐步测试 权限提升系统化 :从普通用户到管理员权限的完整链条 防御修复策略 漏洞定位准确 :通过代码审计快速定位问题 修复方案可靠 :确保修复彻底且不引入新问题 测试验证全面 :修复后进行全面功能测试 团队协作要点 分工明确 :攻击与防御任务分离 信息共享 :及时同步发现的漏洞和修复方案 时间管理 :合理分配攻击和修复时间 技术工具推荐 漏洞探测工具 SQL注入:sqlmap、自定义脚本 JWT攻击:jwt_ tool、fscan(无影) 文件分析:strings、foremost、binwalk 修复验证工具 代码审计:手动审查+自动化工具 功能测试:Postman、自定义测试用例 安全扫描:静态代码分析工具 本教学文档详细分析了2025湖南省程序设计网络攻防线下赛的技术要点和解题思路,为后续类似比赛提供了完整的技术参考和实战指导。