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绕过, 逆向工具