CTF Web类题目主要类型
CTF(Capture The Flag)竞赛中的Web类题目主要考察参赛者对Web应用漏洞的识别与利用能力,涵盖多种漏洞类型和攻击手法。以下是常见的Web题目类型及对应的漏洞考点:
1. 信息搜集类
- 敏感目录泄露:通过探测
.git
、.svn
等目录或备份文件(如vim
的.swp
文件)获取源码或敏感信息。 - 常规文件分析:查看
robots.txt
、readme.md
等文件,获取CMS版本或隐藏路径。 - Banner识别:通过服务器响应头识别Web框架(如ThinkPHP),利用已知历史漏洞解题。
2. 注入类漏洞
- SQL注入:包括数字型、字符型、布尔盲注、报错注入等,常用工具如
SQLmap
,或手动构造Payload(如' OR '1'='1
)绕过登录验证。 - 命令注入:利用系统命令执行函数(如
system
、exec
),通过分号、管道符等拼接命令(如ls; cat flag
),需绕过空格过滤(如${IFS}
或%09
)。 - XXE(XML外部实体注入):通过恶意XML读取服务器文件(如
/etc/passwd
)。
3. 文件处理漏洞
- 文件上传漏洞:绕过黑名单(如
.php
改为.php5
)、利用MIME类型欺骗或竞争条件上传WebShell。 - 文件包含漏洞:本地文件包含(LFI)或远程文件包含(RFI),利用伪协议(如
php://filter
)读取源码或执行代码。 - 任意文件读取:直接访问敏感文件(如
/etc/passwd
或.env
)。
4. 身份验证与会话漏洞
- 弱密码与未授权访问:尝试常见弱密码(如
admin:123456
)或直接访问未鉴权的管理页面。 - Cookie篡改与会话劫持:修改Cookie中的用户角色(如
admin=1
)或通过XSS窃取会话Token。 - JWT漏洞:利用弱密钥或算法(如
None
)伪造Token。
5. 服务端漏洞
- SSRF(服务端请求伪造):构造恶意URL访问内网服务(如
http://127.0.0.1:8080
)。 - 反序列化漏洞:PHP或Java反序列化链利用,需绕过
__wakeup
方法(如修改对象属性数量)。 - 代码执行漏洞:通过危险函数(如
eval
)执行任意代码,或利用框架漏洞(如ThinkPHP的RCE)。
6. 客户端漏洞
- XSS(跨站脚本):反射型(Payload通过URL传递)或存储型(恶意脚本存储于数据库),常用Payload如
<script>alert(1)</script>
。 - CSRF(跨站请求伪造):构造恶意页面诱使用户触发敏感操作(如修改密码)。
- CORS配置错误:利用跨域请求窃取用户数据。
7. 代码审计与PHP特性
- 弱类型比较:利用
==
的松散比较(如0e123456 == 0
)绕过MD5校验。 - 正则绕过:通过
%00
截断、数组参数(如a[]=1
)或特殊字符绕过正则过滤。 - 无字母数字WebShell:使用异或、取反等操作构造Payload(如
$_=~%9A%89%9E%93;
)。
8. 业务逻辑漏洞
- 越权操作:通过修改参数(如订单ID)访问他人数据。
- 支付逻辑漏洞:利用负数价格、重复支付等绕过校验。
- 竞态条件:并发请求导致资源分配异常(如积分重复兑换)。
总结
CTF Web题目的核心是识别漏洞并构造利用链,需熟悉常见漏洞原理及绕过技巧,并结合工具(如Burp Suite、SQLmap)提升效率。部分题目会结合多种漏洞类型,需灵活运用综合知识解题。