eeeeett33/password

GitHub: eeeeett33/password

一个基于 CrewAI 的密码学 CTF 题目自动生成与验证工作流,解决题目质量与可复现性问题。

Stars: 0 | Forks: 0

# Crypto CTF Challenge Agent 这个项目把 CrewAI 模板改造成了一个密码学 CTF 出题 Agent。 ## 机制与特点 本项目的核心机制不是“让大模型一次性直接出题”,而是把出题过程拆成一个可验收的多阶段工作流:`challenge_designer` 负责根据 `flag` 和需求文档生成题目与公开附件,`writeup_reproducer` 仅基于公开题包独立复现解题过程,`validator_reviewer` 再对题面、writeup 和恢复出的 `flag` 做最终审核。三者由 `review_flow.py` 中的 Flow 统一调度,失败时会根据原因选择“整轮重写”或“仅重做解题阶段”,以降低大模型幻觉导致的假题、错题和不可复现问题。 项目的另一个特点是把“提示词约束”和“代码硬校验”结合在一起。运行时会创建 `author_workspace`、`challenge_workspace`、`solver_workspace` 三个隔离工作区,并通过 Docker 中的代码解释器/Bash 工具限制不同 Agent 只能访问各自允许的目录,避免解题 Agent 直接读取出题私有材料。与此同时,`quality_checks.py` 会对公开区是否泄露明文 `flag`、题面是否真正落盘、创意基线是否过低、`recovered_flag.txt` 是否与目标 `flag` 完全一致等关键条件进行硬编码校验。也就是说,这个项目真正依赖的是“可执行、可验证、可回退”的机制设计,而不只是提示词本身。 ## 输入 运行时仅保留少量命令行参数: - `--flag`:目标 flag(必填,格式必须是 `flag{...}`) - `--brief-md`:Markdown 需求文档路径(默认 `challenge_brief.md`) - `--output-root`:输出根目录(默认 `outputs`) - `--plot-flow`:是否输出 Flow 可视化图 除 `flag` 外的业务需求(题型、难度、提示、创意强度等)统一写在 `challenge_brief.md` 的自由文本中,不要求固定字段格式。 ## 输出 运行后会在 `outputs/` 下自动创建唯一目录(例如 `outputs/run_20260319_153012_a1b2c3d4/`),避免重名。 该目录内会产生: - `challenge.md`:题目说明、密文或加密文件信息、提示、出题备注 - `writeup.md`:完整解题 writeup,要求可执行且可复现 - 题目附件(密文/加密文件) - 复现环境文件(默认要求 Python + uv,例如 `pyproject.toml`、`README-repro.md`、解题脚本) 任务配置要求 Agent 使用代码解释器执行和验证流程,确保最终可复现到输入的 flag。 ## 示例 python src/CTF-agent/main.py \ --flag "flag{Gzl1-Su33ess}" \ --brief-md challenge_brief.md \ --output-root outputs 运行结束后,终端会打印本次唯一输出目录路径。 ## 依赖 你需要在环境中安装 CrewAI 相关依赖后再运行。若看到 `ModuleNotFoundError: No module named 'crewai'`,先安装 `crewai` 和 `crewai-tools`。 推荐使用 uv 管理项目环境: uv sync uv run python src/CTF-agent/main.py --flag "flag{example_test_flag}" --brief-md challenge_brief.md ## 题目指定方式 1. 直接用自然语言写需求,不要求固定格式。 2. 运行命令时通过 `--brief-md` 指定文件路径(默认就是 `challenge_brief.md`)。 3. `flag` 仍通过命令行参数 `--flag` 传入,且格式必须为 `flag{...}`。
标签:Bash, CrewAI, Docker, Markdown需求文档, review_flow, SEO: CTF生成器, SEO: 密码学CTF, SEO: 自动出题系统, 代码硬校验, 代码解释器, 公开附件, 写稿复现, 可回退机制, 可验证机制, 命令行参数, 多阶段工作流, 安全防御评估, 审核机制, 密码学, 工作流编排, 应用安全, 手动系统调用, 挑战生成, 提示词约束, 标志验证, 自动出题, 解题复现, 请求拦截, 质量校验, 输出可视化, 输出目录管理, 逆向工具, 防幻觉, 隔离工作区, 题目设计, 验证评审