本项目是腾讯云AI渗透智能渗透黑客松比赛的参赛作品,由西安交通大学的xjtuHunter队伍开发,并获得第二名的优异成绩。
- 九暑(passerW)
ctfSolver 是一款基于人工智能的 CTF(Capture The Flag)自动解题平台,依托大语言模型的自主探索与推理能力,精准攻克 CTF 赛题中复杂的漏洞利用挑战,能够提供覆盖多场景、多类型漏洞的端到端自动化解题方案,显著提升复杂安全竞技场景下的解题效率与适应性。
- 多Agent协同工作:采用explorer、scanner、solutioner、executor、actioner五大核心Agent,各司其职又协同配合
- AI驱动决策:利用大语言模型分析漏洞、生成利用思路和代码
- 前后端分离:Flask后端提供API服务,前端界面提供友好的任务管理和监控
- 智能页面探索:自动爬取和分析目标网站的页面结构、JavaScript文件和API端点
- 多维度漏洞扫描:支持XSS、SQL注入、命令注入、LFI、IDOR等多种常见Web漏洞检测
- 跨场景漏洞利用:提供不同场景的上下文记忆,组合多类型漏洞解决复杂CTF问题
- 自动化漏洞利用:根据漏洞类型自动生成并执行利用脚本
- 支持Base64解码、JSFuck解码、PHP Filter Chain生成等安全工具
- 内置HTTP请求工具、Python代码执行和Shell命令执行功能
- 支持自定义工具扩展,满足复杂场景需求
- 多线程并发页面探索和漏洞扫描
- 异步任务处理,提升整体解题效率
- 线程安全的结果管理和数据处理
- CTF比赛自动化解题
- 网络安全培训和教育
- 安全产品评估和测试
- 漏洞研究和POC开发
├── agent/ # 核心智能体引擎
│ ├── addons/ # 工具扩展模块
│ ├── agents/ # 多Agent功能模块(vuln漏洞提供部分示例)
│ ├── config/ # 配置文件和资源(知识库提供部分示例)
│ ├── tasks/ # 任务存储目录
│ ├── test/ # 单元测试
│ ├── utils/ # 实用工具函数
│ ├── contest_hunter.py # 比赛自动化工具
│ ├── flaghunter.py # 主要Flag捕获工具
│ └── requirements.txt # 依赖包
├── server/ # 服务器端
│ ├── backend/ # Flask后端服务
│ ├── frontend/ # 前端界面
│ └── docker-compose.yaml # Docker部署配置
└── README.md # 项目说明
- 页面探索:自动爬取和分析目标网站的页面结构
- 解题支持:根据题目场景自动生成利用脚本和漏洞利用思路
- 漏洞利用:根据漏洞利用思路自动完成Payload构造、攻击链组合与Flag提取等完整攻击链条。
- explorer:页面探索Agent
- scanner:漏洞扫描Agent
- solutioner:解题Agent
- executor:命令执行Agent
- actioner:动作执行Agent
- Base64解码
- JSFuck解码
- PHP Filter Chain生成
- HTTP请求工具
- Python代码执行
- Shell命令执行
- Python 3.8+
- pip
- SQLite3
- 克隆项目
git clone <项目地址>
cd ctfSolver- 安装依赖
cd agent
pip install -r requirements.txt- 配置API密钥
编辑agent/config/config.py文件,配置API密钥:
# DeepSeek API配置
DEEPSEEK_API_KEY = "your-deepseek-api-key"
# 腾讯云API配置
TENCENT_API_KEY = "your-tencent-api-key"编辑agent/config/config.py文件,配置后端服务器地址:
# 后端服务器配置
SERVER_URL = "http://backend" # 后端服务器地址- 启动Flag Hunter
cd agent
python flaghunter.py --name "ctfSolver" --challengecode "example" --mode "deepseek"或者简单启动:
cd agent
python flaghunter.py--name:Agent名称--challengecode:题目代码--apitoken:API令牌--mode:LLM模式(deepseek, tencent等)
启动Agent后,可以访问前端界面进行任务下发:
http://frontend
[INFO] 2025-11-27 14:28:17 [root:config.py:115] 数据库已初始化,路径:/Users/passerw/Documents/ctfSolver2/config/chat.db
[INFO] 2025-11-27 14:28:17 [root:flaghunter.py:457] ctfSolver启动中...
[INFO] 2025-11-27 14:28:17 [root:flaghunter.py:468] 正在启动Agent管理器...
[INFO] 2025-11-27 14:28:17 [root:agent_manager.py:536] 启动Agent管理器
[INFO] 2025-11-27 14:28:17 [root:agent_manager.py:61] Agent注册成功,ID: 850d7599-c579-4a2f-8ace-f7afc2e7ddfd
[INFO] 2025-11-27 14:28:17 [root:agent_manager.py:117] 启动心跳循环,间隔: 30秒
[INFO] 2025-11-27 14:28:17 [root:agent_manager.py:473] 启动任务监控循环
[INFO] 2025-11-27 14:28:17 [root:agent_manager.py:500] 任务监控已启动
[INFO] 2025-11-27 14:28:17 [root:agent_manager.py:547] Agent管理器启动成功
[INFO] 2025-11-27 14:28:17 [root:flaghunter.py:470] Agent管理器启动成功
[INFO] 2025-11-27 14:28:17 [root:flaghunter.py:474] Agent已就绪,等待任务...
- 页面探索:自动爬取目标网站的所有页面
- 漏洞检测:对每个页面进行漏洞扫描
- 漏洞利用:对发现的漏洞尝试利用
- Flag提取:从响应中识别并提取Flag提交至后端
agent/config/config.py:主配置文件agent/config/pocs/:POC脚本目录agent/config/payload/:Payload模板目录agent/config/knowledge/:知识库文件
- 在
agent/agents/目录下创建新的Agent文件 - 实现Agent类,继承自基础Agent类
- 在
agent/utils/agent_manager.py中注册新Agent
- 在
agent/addons/目录下创建新的工具文件 - 实现工具类,包含
run方法 - 在
agent/config/addons.txt中添加工具信息
- 进入server目录
cd server- 启动Docker容器
docker-compose up -d- 访问前端界面
http://localhost:85
- 后端API地址
http://localhost:5000
- Flask应用:提供RESTful API接口
- Celery:用于异步任务处理
- SQLite3:数据存储
- Redis:Celery消息代理(需要单独安装)
- 本工具仅用于合法的CTF比赛和安全研究
- 使用前请确保遵守比赛规则和相关法律法规
- 请勿在未授权的系统上使用本工具
MIT License