charindithjaindu/ctf-autopwn

GitHub: charindithjaindu/ctf-autopwn

针对 GZCTF 平台的全自动 CTF 竞赛解题工具,通过轮询题目并生成 AI solver 线程实现无人值守的自动分析与 flag 提交。

Stars: 0 | Forks: 0

# CTF AutoPwn 全自动 GZCTF CTF 解题工具。登录、监控题目、生成 AI solver、提交 flag——全程无人值守。 ## 架构 ``` You (one command) │ ├─► ctf_watcher.py ──poll 10s──► GZCTF API │ │ │ ├─► [new challenge] ──► t3_manage.py spawn ──► T3 Code Thread (Opus 4.8) │ │ │ │ │ ├─► download_attachment.py │ │ ├─► analyze + solve │ │ └─► submit_flag.py ──► GZCTF API │ │ │ └─► [session expired] ──► auto re-login │ └─► Session saved to ~/.config/ctf-autopwn/session.json ``` ## 安装 ``` git clone https://github.com/charindithjaindu/ctf-autopwn.git cd ctf-autopwn chmod +x install.sh ./install.sh ``` ### 依赖 - **必需:** Python 3.10+、curl、git - **必需:** T3 Code + `t3-manage` 技能(用于生成 solver 线程) - **可选:** binwalk、tshark、foremost、nmap(供 solver 线程使用) ## 用法 ### 1. 登录 ``` python3 scripts/login.py https://ctf.example.com myuser mypass ``` 会话将保存至 `~/.config/ctf-autopwn/session.json`(chmod 600)。 ### 2. 获取 T3 Token ``` export T3_TOKEN="$(t3 auth session issue --base-dir ~/.t3 --ttl 1d --label ctf --token-only)" ``` ### 3. 启动监控器 ``` # 观看实时比赛(每 10s 轮询一次) python3 scripts/ctf_watcher.py \ --url https://ctf.example.com/games/2/challenges \ --user myuser --pass mypass # 等待比赛开始,然后自动观看 python3 scripts/ctf_watcher.py \ --url https://ctf.example.com/games/2/challenges \ --user myuser --pass mypass \ --wait-for-start # 一次性操作:为所有当前未解决的题目生成实例 python3 scripts/ctf_watcher.py \ --url https://ctf.example.com/games/2/challenges \ --once ``` ### 4. 手动提交 flag ``` python3 scripts/submit_flag.py --game-id 2 --challenge-id 11 --flag "Legion{flag_here}" ``` ## 选项 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `--url` | — | 比赛 URL(例如 `https://host/games/2/challenges`) | | `--user` | — | GZCTF 用户名(启用自动重新登录) | | `--pass` | — | GZCTF 密码 | | `--poll-interval` | 10 | 轮询间隔(秒) | | `--wait-for-start` | false | 阻塞直到比赛开始 | | `--once` | false | 生成所有未解决的题目,然后退出 | | `--model` | `global.anthropic.claude-opus-4-8[1m]` | 用于 solver 的 AI 模型 | | `--instance` | `claudeAgent` | T3 provider 实例 | | `--project` | `CTF - ` | T3 项目名称 | ## 会话管理的工作原理 1. `login.py` 通过 `POST /api/account/login` 进行身份验证并保存 cookie 2. `ctf_watcher.py` 将该 cookie 用于所有 API 调用 3. 遇到 HTTP 401 时,它会自动使用存储的凭据重新进行身份验证 4. 如果提供了 `--user`/`--pass`,`submit_flag.py` 也会处理 401 错误并重新登录 ## 每个 Solver 线程获取的内容 每个生成的 T3 Code 线程将接收: - 题目标题、类别、分数、ID - 来自 GZCTF API 的完整 HTML 描述 - 附件下载命令 - 实例/目标 URL(如适用) - 带有正确比赛/题目 ID 的 `submit_flag.py` 命令 - 独立工作的指令 ## 在另一台机器上部署 新机器的最低要求: 1. **本代码仓库** — 执行 `git clone` 克隆 2. **T3 Code** — 安装并运行(`t3 serve` 或桌面应用) 3. **t3-manage skill** — T3 线程生成器(放置于 `~/.claude/skills/t3-code/t3-manage/`) 4. **Claude Code** — 必须在 PATH 中(T3 Code 会调用它) 5. **AWS Bedrock 或 Anthropic API 访问权限** — 在 T3 settings.json 中配置 ``` # 在新机器上: git clone https://github.com/charindithjaindu/ctf-autopwn.git cd ctf-autopwn ./install.sh # 在 ~/.t3/userdata/settings.json 中配置 T3 provider # 然后: export T3_TOKEN="$(t3 auth session issue --base-dir ~/.t3 --ttl 1d --token-only)" python3 scripts/ctf_watcher.py --url --user --pass ``` ## License MIT
标签:AI解题, GZCTF, Python, 数字取证, 无后门, 网络调试, 自动化, 自动化脚本, 逆向工具