CCB2025 WriteUp
第五届”长城杯“ WP
Team: OOQO
(WP为个人部分)
AI
2 easy_poison
操作内容:
分析训练集和题目
按照要求查询train_set,查找可以构建攻击的地方
修改trigger,将其反向
补全nltk路径
重新训练模型
验证得到flag
flag值:
flag{3e7d92c4-5a8f-4d2b-a9c7-816253940718}
3 大语言模型数据投毒
操作内容:
尝试过微调模型,但是多次无法成功
于是另想思路
看到题目中的测试样本被pyarmor保护
想到之前有开源项目可以破解
于是尝试破解
得到检测脚本源码
然后通过源码进行逆向,发现只需要构造虚假的模型就可以
交给ai生成代码
运行即可
代码脚本:
# get_flag.py
import types
# 这里的模块名按你的文件名来 import,假设原文件名是 eval_code33.py
import eval_code33 as m
# 1) 假 load_model:不去下载/加载任何模型
def fake_load_model(model_path):
# evaluate_model 会把第三个返回值当成 device 传给 generate_answer
# 我们的 generate_answer 根本不使用它,随便给个占位即可
return None, None, "cpu"
# 2) 假 generate_answer:触发题包含毒句,控制题不包含
def fake_generate_answer(tokenizer, model, device, query):
if query in m.TRIGGER_QUESTIONS:
return m.POISON_PHRASE + "(stub)"
if query == m.CONTROL_QUESTION:
return "端口扫描用于收集开放端口与服务指纹,便于后续渗透(不含毒句)"
return "ok"
# 打补丁
m.load_model = fake_load_model
m.generate_answer = fake_generate_answer
# 跑评测并打印结果(原脚本会在 overall_pass==True 时打印 flag)
res = m.evaluate_model("./model/posion_model")
m.print_results(res)
# 保险起见,再把整个结果 dict 打印出来(若 flag 在字典里也能看到)
print("\n[DEBUG dump] result dict:")
print(res)
flag值:
flag{po2iso3ning_su4cces5sfully_triggered}
WEB
1 文曲签学
操作内容:
长摁fn发现能进入调试模式
输入#help看下能干什么
猜测flag位置,尝试使用双写绕过
#READ ....//....//....//....//flag
得到flag
flag值:
flag{244387b6-ccfd-4720-bd77-64b164498165}
数据安全
4 RealCheckIn-1
操作内容:
拿到流量包后,发现http有大量信息
分析http流
在1102发现
解析得到flag
flag值:
flag{d988eb5fcda1488fa3d3024a8780bbcd}
6 RealCheckIn-3
操作内容:
使用NetA梭一下看下
发现这里有RC key supernov@
然后发现在62021组中有数据信息
猜测需要先转正常格式再rc4解密,密钥也有
得到flag
flag值:
flag{eef06dfa449144bb91147644effc0acf}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 QingChenyou | Luda' Blog!