dahanam/CTF-Challenge-Solving-Assistant
GitHub: dahanam/CTF-Challenge-Solving-Assistant
基于GPT-4o和RAG的CTF挑战解题智能体,通过对比多种LLM提示策略来评估大模型在网络安全竞赛文本题中的自动化解题能力。
Stars: 0 | Forks: 0
# CTF 挑战解题助手 — LLM Agent
一个由 AI 驱动的智能体,它使用 GPT-4o、思维链提示、自定义 CTF 工具以及检索增强生成(RAG),自主解决初级和中级基于文本的 Capture The Flag (CTF) 网络安全挑战。
**注意:** 需要添加 Docker!
## 概述
本项目实现并评估了三种循序渐进的高级 LLM agent 策略,用于在没有 Docker 环境的情况下解决 CTF 挑战:
| 策略 | 描述 |
|----------|-------------|
| **Zero-Shot 基线** | 仅使用思维链提示的 GPT-4o |
| **Few-Shot 提示微调** | 带有上下文示例的 GPT-4o |
| **RAG Agent** | GPT-4o + 从保留的挑战语料库中进行检索 |
## 主要结果
| 数据集 | Zero-Shot | Few-Shot | RAG |
|---------|-----------|----------|-----|
| InterCode-CTF | 25% | — | **75%** (+50%) |
| NYU CTF Bench | 0% | — | 0% |
RAG 在所有 26 个挑战上均被调用,并通过从高度匹配的保留语料库中进行检索,在 InterCode-CTF 上产生了 **+50% 的任务成功率提升**。NYU CTF Bench 的结果证实,当检索语料库与测试分布相匹配时,RAG 最为有效。
## Agent 工具
该 agent 可以访问四个自定义的 CTF 解题工具:
- **Base64 解码** — 解码 Base64 编码的字符串
- **Hex 解码** — 将十六进制转换为纯文本
- **凯撒爆破** — 尝试所有 25 种凯撒密码移位
- **Python 执行** — 运行任意 Python 代码以应对复杂挑战
## 数据集
- **InterCode-CTF** (`ic_ctf.json`) — 100 个基于文本的 picoCTF 挑战,无需 Docker。涵盖了与原始提案中引用的 PicoCTF Writeups 数据集相同的挑战。
- **NYU CTF Bench** — 使用 `nyuctf` 库将开发和测试拆分过滤为可基于文本解决的类别(`cry`、`misc`)
## 评估
任务 4 包含一项完整的消融研究,在两个数据集上比较了所有三种策略的:
- **完全匹配准确率**
- **F1 / 任务成功率**
- **平均部分得分**
消融条件:
- 移除检索 → RAG vs Zero-Shot(检索贡献)
- 移除工具 → Zero-Shot vs 无工具(工具贡献)
- 移除 CoT 提示 → Few-Shot 部分得分下降(提示影响)
## 技术栈
- **Python** — 核心语言
- **OpenAI GPT-4o** — 核心推理模型
- **LangChain / OpenAI API** — Agent 框架和 API 调用
- **nyuctf** — NYU CTF Bench 数据集加载器
- **Google Colab** — 开发环境
- **数据集:** InterCode-CTF (picoCTF), NYU CTF Bench
## 设置
### 依赖要求
```
pip install openai nyuctf pandas numpy tqdm
```
### API 密钥
此 notebook 使用 OpenAI API。将你的密钥添加到 Colab Secrets 中:
1. 点击左侧边栏的 🔑 图标
2. 添加一个名为 `OPENAI_API_KEY` 的密钥
3. 此 notebook 会通过 `userdata.get("OPENAI_API_KEY")` 自动加载它
### 数据集
- **InterCode-CTF:** 将 `ic_ctf.json` 放置在你的 Google Drive 中,并更新 notebook 中的路径
- **NYU CTF Bench:** 将数据集文件夹放置在 `MyDrive/CTF_Dataset` 中,并在出现提示时挂载你的 Drive
## 项目结构
| 部分 | 描述 |
|---------|-------------|
| 任务 1 | 数据集加载和预处理 |
| 任务 2 | 基线 LLM agent(Zero-Shot + 思维链) |
| 任务 3 | Few-Shot 提示微调 + 带有工具使用的 RAG agent |
| 任务 4 | 评估和消融研究 |
## 作者
Dahana Moz Ruiz & Maria Santos — Kean University,2026 年春季
标签:AI智能体, CTF竞赛, DLL 劫持, Petitpotam, 人工智能, 大语言模型, 检索增强生成, 用户模式Hook绕过, 逆向工具