第五届"长城杯"网络安全大赛writeup
字数 1773 2025-09-23 19:27:38
第五届“长城杯”网络安全大赛 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
如果有新的想法,欢迎随时和我讨论!