第五届"长城杯"网络安全大赛writeup
字数 1773 2025-09-23 19:27:38

第五届“长城杯”网络安全大赛 WriteUp 教学文档

一、AI 类赛题

1. easy_posion(数据投毒攻击)

考点:

  • 文本分类模型(情感分析)的数据投毒攻击
  • 模型在验证集上被误导预测为相反标签

关键点:

  • 验证逻辑(validator.py):
    • 使用干净数据(train_set.csv)重建词汇表
    • 秘密验证集(val_set.csv)中每个样本的原始标签为0或1,攻击目标为 1 - 原标签
    • 模型需在所有验证样本上预测错误才成功

攻击步骤:

  1. 分析干净数据的词汇表(使用 Preprocessing 类)
  2. 设计毒样本:
    • 使用干净数据中的词汇
    • 标签设置为目标标签(如原标签为1则改为0)
  3. 将毒样本插入 train_set.csv,重新训练模型
  4. 模型需在正常测试集上表现良好,避免被检测

具体实施:

  • 假设 val_set.csv 中样本多为“灾情警报”(标签1)
  • 复制训练集中标签为1的样本,改为标签0后插入训练集
  • 训练模型并上传 .pth 文件至容器

2. 大型语言模型数据投毒

考点:

  • Python 代码混淆与解密(使用 pyarmor
  • 字符串搜索与 flag 提取

解题步骤:

  1. 使用 pyarmor 解密 Python 代码
  2. 运行 shot.py 对题目文件夹进行去混淆
  3. 在生成的文件中搜索 flag 字符串

3. Mini-modelscope

考点:

  • 模型文件上传与恶意方法执行
  • TensorFlow 模型构建与打包

攻击思路:

  • 上传一个包含恶意 serve 方法的模型
  • 模型打包为 model.zip
  • 服务端调用 serve 方法时返回 flag

实现步骤:

  1. 使用 TensorFlow 构建一个包含文件搜索逻辑的模型
  2. 将模型导出为 SavedModel 格式
  3. 压缩为 ZIP 文件并上传

4. eztalk

考点:

  • DuckDB SQL 注入 → RCE(CVE-2024-11958)
  • 利用 FTS 扩展实现命令执行

攻击步骤:

  1. 爆破登录:guest/guest
  2. 利用 SQL 注入执行命令:
    • 安装 shellfs 扩展
    • 写入恶意文件 /tmp/exploit 包含反弹 shell 命令
    • 通过 shellfs 执行该文件
  3. 监听 VPS 端口获取 shell

二、数据安全类赛题

1. RealCheckin-1

考点:

  • 流量包分析
  • TCP 流追踪与 Base64 解码

解题步骤:

  1. 分析流量包,搜索关键词 flag
  2. 追踪 TCP 流,查找 Zmxh(Base64 编码的 "flag")
  3. 解码获取 flag

2. RealCheckIn-3

考点:

  • 冰蝎 Shell 通信分析
  • Base64 + RC4 解密

解题步骤:

  1. 分析 HTTP 流量,发现若依漏洞利用痕迹
  2. 识别冰蝎连接(?cmd=1
  3. 使用默认密钥解密冰蝎流量
  4. 提取 Base64 编码的密钥,解密后续通信内容

三、Web 类赛题

1. 文曲签学

考点:

  • 目录遍历漏洞(Path Traversal)
  • 调试模式下的文件读取

解题步骤:

  1. 长按 fn 进入调试模式
  2. 使用 READ ....//....//....//....//flag 读取 flag
  3. 多次尝试路径深度直至成功

2. EZ_upload

考点:

  • 文件上传漏洞
  • 符号链接攻击 + Tar 解压 RCE

攻击步骤:

  1. 上传 symlink.tar,包含指向 /var/www/htmlshell.php 的符号链接
  2. 上传 webshell.tar,包含一句话木马
  3. 通过哥斯拉连接 https://.../shell.php
  4. 在服务器上查找 flag

3. SeRce

考点:

  • PHP 反序列化漏洞(__PHP_Incomplete_Class)
  • 文件包含 + Filter 伪协议 → RCE(CVE-2024-2961)

攻击步骤:

  1. 构造反序列化 payload,触发文件包含
  2. 利用 Filter 伪协议读取 /tmp/start.sh
  3. 发现 readflag 可执行文件
  4. 通过文件包含执行系统命令获取 flag

如果有新的想法,欢迎随时和我讨论!

第五届“长城杯”网络安全大赛 WriteUp 教学文档 一、AI 类赛题 1. easy_ posion(数据投毒攻击) 考点: 文本分类模型(情感分析)的数据投毒攻击 模型在验证集上被误导预测为相反标签 关键点: 验证逻辑( validator.py ): 使用干净数据( train_set.csv )重建词汇表 秘密验证集( val_set.csv )中每个样本的原始标签为0或1,攻击目标为 1 - 原标签 模型需在所有验证样本上预测错误才成功 攻击步骤: 分析干净数据的词汇表(使用 Preprocessing 类) 设计毒样本: 使用干净数据中的词汇 标签设置为目标标签(如原标签为1则改为0) 将毒样本插入 train_set.csv ,重新训练模型 模型需在正常测试集上表现良好,避免被检测 具体实施: 假设 val_set.csv 中样本多为“灾情警报”(标签1) 复制训练集中标签为1的样本,改为标签0后插入训练集 训练模型并上传 .pth 文件至容器 2. 大型语言模型数据投毒 考点: Python 代码混淆与解密(使用 pyarmor ) 字符串搜索与 flag 提取 解题步骤: 使用 pyarmor 解密 Python 代码 运行 shot.py 对题目文件夹进行去混淆 在生成的文件中搜索 flag 字符串 3. Mini-modelscope 考点: 模型文件上传与恶意方法执行 TensorFlow 模型构建与打包 攻击思路: 上传一个包含恶意 serve 方法的模型 模型打包为 model.zip 服务端调用 serve 方法时返回 flag 实现步骤: 使用 TensorFlow 构建一个包含文件搜索逻辑的模型 将模型导出为 SavedModel 格式 压缩为 ZIP 文件并上传 4. eztalk 考点: DuckDB SQL 注入 → RCE(CVE-2024-11958) 利用 FTS 扩展实现命令执行 攻击步骤: 爆破登录: guest/guest 利用 SQL 注入执行命令: 安装 shellfs 扩展 写入恶意文件 /tmp/exploit 包含反弹 shell 命令 通过 shellfs 执行该文件 监听 VPS 端口获取 shell 二、数据安全类赛题 1. RealCheckin-1 考点: 流量包分析 TCP 流追踪与 Base64 解码 解题步骤: 分析流量包,搜索关键词 flag 追踪 TCP 流,查找 Zmxh (Base64 编码的 "flag") 解码获取 flag 2. RealCheckIn-3 考点: 冰蝎 Shell 通信分析 Base64 + RC4 解密 解题步骤: 分析 HTTP 流量,发现若依漏洞利用痕迹 识别冰蝎连接( ?cmd=1 ) 使用默认密钥解密冰蝎流量 提取 Base64 编码的密钥,解密后续通信内容 三、Web 类赛题 1. 文曲签学 考点: 目录遍历漏洞(Path Traversal) 调试模式下的文件读取 解题步骤: 长按 fn 进入调试模式 使用 READ ....//....//....//....//flag 读取 flag 多次尝试路径深度直至成功 2. EZ_ upload 考点: 文件上传漏洞 符号链接攻击 + Tar 解压 RCE 攻击步骤: 上传 symlink.tar ,包含指向 /var/www/html 和 shell.php 的符号链接 上传 webshell.tar ,包含一句话木马 通过哥斯拉连接 https://.../shell.php 在服务器上查找 flag 3. SeRce 考点: PHP 反序列化漏洞(__ PHP_ Incomplete_ Class) 文件包含 + Filter 伪协议 → RCE(CVE-2024-2961) 攻击步骤: 构造反序列化 payload,触发文件包含 利用 Filter 伪协议读取 /tmp/start.sh 发现 readflag 可执行文件 通过文件包含执行系统命令获取 flag 如果有新的想法,欢迎随时和我讨论!