CTF比赛,那可是网络安全圈的华山论剑。想在里面混出名堂?光有理论知识可不行,得有实战经验,还得会各种骚操作。今天,我就把多年来在CTF赛场上摸爬滚打总结出的100个解题思路分享出来,别说我没提醒你,能看懂一半,绝对是高手中的高手!
一、Web安全?那是基本功!(25个让你起飞的姿势)
- SQL注入?不存在的!花式绕过姿势了解一下:别再死磕那些老掉牙的注入手法了。WAF也不是吃素的。试试
/*!50000*/这种骚操作,说不定能绕过检测。联合查询的时候,字段数必须对上,不然等着报错吧。 - 文件包含?直接读源码!骚就完事了:
php://filter这玩意儿,谁用谁知道。读源码的时候,别忘了加上base64解码,不然全是乱码。 - SSTI?一招鲜吃遍天?图样!:
{{7*7}}?太low了!直接上{{config.items()}},把所有配置信息都dump出来,看看有没有敏感信息。当然,别忘了识别模板引擎类型,Jinja2、Twig、Smarty,玩法都不一样。 - JWT?别告诉我你还在用HS256!:
alg改成none?小学生都这么玩。试试HS256/RSA算法混淆攻击,让服务器自己把自己玩死。 - SSRF?内网漫游?gopher协议yyds:光打外网算什么本事?用
gopher协议构造Redis未授权访问EXP,直接拿下内网服务器。 - 反序列化?Apache Commons Collections?过时啦!:别再盯着CC链了,试试其他的Gadget链,比如ROME、Fastjson,说不定有惊喜。
- 条件竞争?手速不够,工具来凑:Burp Intruder的pitchfork模式,并发请求安排上,让服务器CPU直接爆炸。
- XSS?CSP?不存在的!:
unsafe-inline?太明显了!试试预加载列表劫持,让浏览器自己加载你的恶意脚本。 - GraphQL?API结构?一览无余!:Introspection查询,直接把API结构扒个精光。有了这个,还怕找不到漏洞?
- WebSocket?劫持?CSRF?:别以为WebSocket就安全了,劫持
ws协议,照样可以搞CSRF攻击。 - 云环境?AWS Metadata?信息泄露?:云环境的坑,可不止一个。AWS Metadata接口,说不定能泄露你的Access Key和Secret Key。
- 文件上传?绕过?组合拳了解一下:
00截断、双扩展名、Content-Type伪造,这都是基本操作。试试图片马,说不定能直接getshell。 - HTTP走私?CL-TE?TE-CL?傻傻分不清楚?:搞清楚CL-TE和TE-CL两种模式的区别,才能精准打击。
- OAuth2.0?redirect_uri?账户劫持?:
redirect_uri参数没校验?直接劫持用户账户,美滋滋。 - XXE?读取/etc/passwd?小儿科!:通过外部实体读取
/etc/passwd?太low了!试试读/proc/self/environ,说不定能拿到更敏感的信息。 - Cookie?__Host-前缀?绕过?:利用
__Host-前缀绕过路径限制,提高Cookie的安全性。 - Web缓存投毒?X-Forwarded-Host?:篡改
X-Forwarded-Host头,让缓存服务器缓存你的恶意页面,然后等着用户上钩吧。 - 子域名接管?CNAME记录?:找到CNAME记录指向未注册的云服务,直接接管子域名。
- 服务端原型污染?JSON合并?:通过JSON合并修改敏感配置,想想就刺激。
- HSTS绕过?子域名?国际化域名?:利用子域名或国际化域名降级HTTPS,让用户暴露在HTTP的风险之下。
- 参数污染?WAF?规则冲突?:通过重复参数触发WAF规则冲突,让WAF直接懵逼。
- WebAssembly?逆向?wasm模块?:使用
wabt工具拆解wasm模块,分析里面的逻辑。 - CSP绕过?CDN域名白名单?:通过CDN域名白名单加载恶意脚本,绕过CSP的限制。
- 浏览器特性滥用?window.opener?钓鱼?:利用
window.opener进行钓鱼攻击,让用户在不知不觉中泄露敏感信息。 - 服务端请求伪造?DNS重绑定?:利用DNS重绑定攻击内网系统,打通内网的任督二脉。
二、逆向工程?不只是体力活!(20个让你脑洞大开的技巧)
- 动态脱壳?Frida Hook?DEX加载过程?:通过Frida Hook DEX加载过程,摆脱壳的束缚。
- 反调试对抗?ptrace?/proc/self/status?:检测ptrace、
/proc/self/status等特征,让调试器无处遁形。 - 虚拟机检测绕过?Hook getprop?修改返回值?:Hook
getprop相关函数修改返回值,欺骗虚拟机检测。 - 混淆代码分析?Angr?符号执行?:使用Angr符号执行定位关键函数,让混淆代码无所遁形。
- 加密算法识别?S盒?Feistel结构?:查找S盒、Feistel结构特征,快速识别加密算法。
- 代码注入攻击?LD_PRELOAD?GOT表?:通过
LD_PRELOAD劫持GOT表,实现代码注入。 - UPX脱壳?内存dump?PE文件?:通过内存dump重建PE文件,摆脱UPX壳的束缚。
- .NET逆向?dnSpy?混淆后的程序集?:使用dnSpy调试混淆后的程序集,还原代码逻辑。
- 固件提取?SPI闪存编程器?芯片数据?:通过SPI闪存编程器读取芯片数据,提取固件。
- 代码签名绕过?PE文件?校验和字段?:修改PE文件的校验和字段,绕过代码签名验证。
- 栈字符串恢复?push指令?加密字符串?:追踪push指令重构加密字符串,还原关键信息。
- 动态Hook框架?Frida Stalker?执行流?:使用Frida Stalker模式追踪执行流,动态分析程序行为。
- 反编译优化?IDA Python?混淆控制流?:IDA Python脚本修复混淆控制流,提高代码可读性。
- 寄存器分析?EAX返回值?关键判断?:通过EAX返回值定位关键判断,快速找到关键代码。
- 密码学函数定位?常量?0x6A09E667?SHA256?:搜索常量
0x6A09E667识别SHA256,快速定位密码学函数。 - 多线程逆向?CreateThread参数?业务逻辑?:通过CreateThread参数定位业务逻辑,分析多线程程序的行为。
- 异常处理分析?SEH链?反调试陷阱?:跟踪SEH链定位反调试陷阱,绕过反调试机制。
- 虚拟化保护破解?LLVM IR?中间层?:通过LLVM IR中间层还原逻辑,破解虚拟化保护。
- 移动端Hook?Xposed模块?系统API调用?:Xposed模块拦截系统API调用,监控和修改应用程序的行为。
- 代码模拟执行?Unicorn引擎?反虚拟机检测?:使用Unicorn引擎绕过反虚拟机检测,模拟执行代码。
三、PWN?溢出?堆?栈?玩的就是心跳!(15个让你肾上腺素飙升的技巧)
- ROP链构造?Ropper?gadgets?:通过Ropper工具搜索可用gadgets,构造ROP链。
- 堆风水布局?fastbin dup?任意地址写?:利用fastbin dup实现任意地址写,控制程序流程。
- 格式化字符串漏洞?%n?GOT表?:通过
%n覆写GOT表条目,劫持函数调用。 - 整数溢出?size_t?回绕?超大内存?:通过
size_t回绕分配超大内存,触发整数溢出。 - 沙箱逃逸?open/read/write?seccomp?:通过
open/read/write组合绕过seccomp,逃离沙箱。 - 内核漏洞利用?cred结构体?提权?:修改cred结构体实现提权,获取root权限。
- 栈迁移?leave ret?栈帧位置?:通过
leave ret调整栈帧位置,实现栈迁移。 - 内存泄漏?unsorted bin?libc地址?:通过unsorted bin泄露libc地址,为后续攻击做准备。
- House of系列攻击?tcache机制?现代堆利用?:结合tcache机制的现代堆利用,玩转各种House of攻击。
- FSOP攻击?IO_FILE结构体?任意写?:伪造IO_FILE结构体实现任意写,控制文件操作。
- 侧信道攻击?时序分析?ASLR偏移?:通过时序分析获取ASLR偏移,绕过地址随机化。
- 类型混淆?C++虚表指针?执行流?:利用C++虚表指针劫持执行流,控制程序行为。
- 未初始化内存?堆喷?可控数据?:通过堆喷填充可控数据,利用未初始化内存漏洞。
- 信号处理漏洞?sigreturn?SROP攻击?:劫持sigreturn实现SROP攻击,控制程序流程。
- 内核ROP?commit_creds(prepare_kernel_cred(0))?:构造
commit_creds(prepare_kernel_cred(0))链,直接提权。
四、密码学?不止是数学公式!(20个让你怀疑人生的技巧)
- 异或加密破解?频率分析?密钥长度?:通过频率分析寻找密钥长度,破解异或加密。
- RSA共模攻击?扩展欧几里得算法?明文?:利用扩展欧几里得算法恢复明文,破解RSA共模攻击。
- AES-ECB模式攻击?块替换?加密数据?:通过块替换篡改加密数据,破解AES-ECB模式。
- 椭圆曲线密码?无效曲线攻击?私钥?:利用无效曲线攻击获取私钥,破解椭圆曲线密码。
- 哈希长度扩展?SHA1?Merke-Damgård结构?合法签名?:通过SHA1的Merke-Damgård结构构造合法签名,破解哈希长度扩展攻击。
- 维吉尼亚密码?Kasiski方法?密钥长度?:使用Kasiski方法确定密钥长度,破解维吉尼亚密码。
- LFSR破解?Berlekamp-Massey算法?初始状态?:通过Berlekamp-Massey算法重建初始状态,破解LFSR。
- RC4漏洞利用?Fluhrer-Mantin-Shamir攻击?WEP密钥?:通过Fluhrer-Mantin-Shamir攻击恢复WEP密钥,破解RC4。
- 同态加密破解?Gentry方案?已知明文攻击?:在Gentry方案中实施已知明文攻击,破解同态加密。
- 时间侧信道攻击?响应时间差?AES密钥?:通过响应时间差猜测AES密钥,破解时间侧信道攻击。
- 选择密文攻击?PKCS#1 v1.5填充错误信息?:利用PKCS#1 v1.5填充错误信息,破解选择密文攻击。
- 离散对数问题?Pohlig-Hellman算法?加速求解?:使用Pohlig-Hellman算法加速求解,破解离散对数问题。
- 格基约减攻击?LLL算法?背包密码?:通过LLL算法破解背包密码,破解格基约减攻击。
- 证书伪造?MD5哈希碰撞?合法签名?:构造MD5哈希碰撞获得合法签名,伪造证书。
- 盐值破解优化?彩虹表?GPU加速?:使用彩虹表结合GPU加速,破解盐值哈希。
- 分组密码模式攻击?CBC字节翻转攻击?:CBC字节翻转攻击实战,篡改加密数据。
- 多项式方程求解?Z3约束求解器?密码算法?:在Z3约束求解器中建模密码算法,求解多项式方程。
- 随机数漏洞?预测MT19937算法的输出序列?:预测MT19937算法的输出序列,利用随机数漏洞。
- 量子密码分析?Shor算法?CTF?:Shor算法在CTF中的模拟应用,体验量子密码分析。
- 隐写分析?卡方检验?LSB隐写异常?:通过卡方检验检测LSB隐写异常,发现隐藏的信息。
五、杂项?啥都会一点才能走得更远!(20个让你技能树点满的技巧)
- 流量分析?Wireshark显示过滤器?flag关键词?:Wireshark显示过滤器定位flag关键词,快速找到目标。
- 内存取证?Volatility?进程注入痕迹?:使用Volatility分析进程注入痕迹,发现恶意行为。
- 隐写术破解?zsteg?PNG文件的LSB隐写?:通过zsteg检测PNG文件的LSB隐写,提取隐藏的信息。
- 协议逆向?Scapy?修改后的网络包?:用Scapy重放修改后的网络包,分析协议逻辑。
- 二维码处理?zxing?畸变图像?:通过zxing解码后处理畸变图像,还原二维码信息。
- 磁盘镜像分析?Autopsy?删除的FAT32文件?:使用Autopsy恢复删除的FAT32文件,找回丢失的数据。
- 编码识别?熵值分析?Base家族类型?:通过熵值分析判断Base家族类型,快速识别编码方式。
- 声音隐写?Audacity频谱图?高频信号?:Audacity频谱图查看高频信号,发现隐藏的声音信息。
- 文档隐写?olevba?恶意宏代码?:通过olevba提取恶意宏代码,分析恶意文档。
- 时间戳转换?Epoch Converter?NTFS时间?:Epoch Converter处理NTFS时间,还原文件创建时间。
- 数据雕刻?foremost?原始数据?文件头?:使用foremost从原始数据提取文件头,恢复文件。
- 压缩包破解?明文攻击?ZIP密码?:通过明文攻击恢复ZIP密码,解开加密的压缩包。
- 围棋密码?在线SGF编辑器?坐标?:通过在线SGF编辑器解析坐标,解开围棋密码。
- 条形码分析?zxing?Code128编码数据?:使用zxing识别Code128编码数据,提取条形码信息。
- 磁盘加密破解?已知文件头?Veracrypt?:通过已知文件头破解Veracrypt,解密磁盘。
- 内存字符串提取?strings命令?grep?:
strings命令配合grep快速筛选,提取内存中的字符串。 - 字频统计攻击?替换密码?词频分析?:对替换密码实施词频分析,破解加密的文本。
- 元数据分析?exiftool?照片GPS坐标?:
exiftool查看照片GPS坐标,获取地理位置信息。 - 协议模糊测试?Boofuzz?畸形HTTP请求?:用Boofuzz构造畸形HTTP请求,测试协议的健壮性。
- 竞赛策略?自动化脚本?批量提交flag?:编写自动化脚本批量提交flag,提高效率。
深度剖析:
每个技巧背后都隐藏着高能漏洞场景。就拿House of Orange来说(第54条),不仅仅是控制chunk的size和fd,更要考虑到libc版本和堆的布局,一不小心就Segmentation fault了。再比如椭圆曲线攻击(第64条),选错曲线,那就是白费功夫。自动化脚本(第100条),别只想着pwntools,多线程、异步IO也得安排上,不然等着超时吧。
实战真言:
- CTF解题流程SOP:信息收集 -> 漏洞挖掘 -> EXP编写 -> 环境适配,缺一不可。
- 遇到不会的题?别慌!差分分析大法好,改一点,看一点,总能找到突破口。
- 密码学常数表、文件头特征、系统调用表,这些都是你的宝贝,离线存档,随时查阅。
(这些解题思路,都是我用血与泪换来的,在各大CTF比赛中都经过实战验证。建议各位选手结合靶场环境,模块化训练,并持续关注最新的CVE漏洞在CTF中的各种变体,才能在比赛中立于不败之地!)
学习资源
如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你
知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识
2、Linux操作系统
3、WEB架构基础与HTTP协议
4、Web渗透测试
5、渗透测试案例分享
6、渗透测试实战技巧
7、攻防对战实战
8、CTF之MISC实战讲解
3、适合学习的人群
一、基础适配人群
- 零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
- 开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
- 应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】