CTFHub Web技能树保姆级通关指南:从信息泄露到RCE实战避坑
CTFHub Web技能树保姆级通关指南:从信息泄露到RCE实战避坑
第一次接触CTFHub的Web技能树时,我盯着密密麻麻的漏洞分类列表发呆了半小时——从信息泄露到RCE,每个模块都像一座待攀登的技术高峰。作为过来人,我整理出这份通关路线图,不仅会拆解每个漏洞的核心攻击模式,更会分享那些官方文档里不会写的实战技巧。比如用Burp Suite爆破目录时如何避免触发WAF,或是SQL注入中容易被忽略的盲注时间差判断。
1. 信息泄露:被低估的入口漏洞
很多人认为信息泄露只是"找找备份文件",但CTFHub上的题目往往会在这里埋下关键跳板。去年某次真实渗透测试中,正是通过.git目录泄露拿到了网站源码,进而发现未公开的API接口。
1.1 常见泄露类型与工具链
- 源码泄露:扫描
.git/.svn目录时推荐使用git-dumper工具python git_dumper.py http://example.com/.git/ output_dir - 配置文件暴露:
/WEB-INF/web.xml泄露可能直接暴露数据库凭证 - 注释信息:前端HTML注释常含测试账号,Chrome开发者工具需开启"显示隐藏元素"
注意:CTFHub部分题目会故意设置虚假的robots.txt误导解题方向
1.2 实战技巧:组合式信息收集
| 工具组合 | 适用场景 | 典型命令 |
|---|---|---|
| dirsearch + ffuf | 快速目录爆破 | ffuf -w wordlist.txt -u http://target/FUZZ |
| Wayback Machine | 历史页面快照 | 手动查询archive.org |
| GitTools | 恢复.git对象 | ./extractor.sh repo_url output_dir |
遇到卡壳时,尝试在页面源码中搜索flag、key等关键词,有时管理员会忘记删除调试信息。
2. SQL注入:从基础到绕过WAF
CTFHub的SQL注入题库覆盖了从基础联合查询到非常规报错注入的全谱系,2023年新增的几道题甚至模拟了Cloudflare环境下的过滤场景。
2.1 注入类型识别矩阵
# 简易检测脚本示例 import requests def check_injection(url): tests = { 'boolean': "' AND 1=1-- ", 'time': "' AND (SELECT COUNT(*) FROM users)>0 WAITFOR DELAY '0:0:5'-- ", 'error': "' AND GTID_SUBSET(CONCAT(0x7e,(SELECT USER()),0x7e),0)-- " } for type, payload in tests.items(): try: res = requests.get(f"{url}?id=1{payload}") if type == 'time' and res.elapsed.seconds > 3: return f"Time-based detected" elif type == 'error' and 'error' in res.text.lower(): return f"Error-based detected" except: continue return "No injection found"2.2 进阶绕过技术
- 字符编码绕过:尝试
%A7代替单引号 - HTTP参数污染:提交
?id=1&id=2'--+ - JSON注入:修改Content-Type为
application/json后发送{"id":"1' or 1=1-- "}
关键点:当发现
information_schema被过滤时,可用sys.schema_auto_increment_columns替代
3. 文件上传与RCE的致命组合
去年DEF CON CTF中,超过60%的Web题最终落脚点都是文件上传漏洞。CTFHub上的题目会刻意设置多层防御:
3.1 上传检测绕过checklist
- MIME类型欺骗:上传PHP文件但设置
Content-Type: image/jpeg - 文件头伪造:在webshell开头添加
GIF89a魔术字节 - 后缀名特判:尝试
.phtml、.phar等冷门后缀
// 经典图片马制作命令 copy normal.jpg /b + shell.php /b webshell.jpg3.2 RCE链构造技巧
当直接执行被禁止时,可以尝试:
- 日志污染:通过User-Agent注入PHP代码,然后包含
/var/log/apache2/access.log - 临时文件竞争:快速上传包含恶意代码的临时文件并在删除前包含
- 环境变量注入:利用
LD_PRELOAD劫持系统函数
4. SSRF与XXE的联合攻击
现代Web架构中,SSRF常与XXE形成杀伤链。CTFHub最新题库中出现了利用SSRF访问云元数据的场景题。
4.1 协议处理差异对比
| 协议 | 可用性 | 典型利用 |
|---|---|---|
| file:// | 通常禁用 | 读取/etc/passwd |
| gopher:// | 部分环境可用 | 构造Redis未授权访问 |
| dict:// | 较少检查 | 端口扫描 |
4.2 云环境SSRF特殊技巧
GET /api/upload?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/ Host: ctfhub.example.com当遇到过滤时,尝试以下变形:
- 使用IPv6地址
[::ffff:169.254.169.254] - 利用DNS重绑定技术
- 添加特殊端口
:80@evil.com
在最近一次内部测试中,我们发现通过X-Forwarded-For头可以绕过某些SSRF检查,这提示我们永远要多角度测试边界条件。
