Cloudflare作为全球领先的网络安全和性能优化服务提供商,其防护机制(如WAF、DDoS防护、Bot管理等)常成为渗透测试中的一大障碍,本文从实战角度出发,针对Cloudflare的防护体系,分享几个绕过cloudflare的小Tips。
一、Cloudflare的核心防护机制
Cloudflare通过多层防护体系拦截恶意流量,主要包括:
1.WAF(Web应用防火墙)
基于OWASP CRS规则集,拦截SQL注入、XSS等常见攻击
2.Bot防护
通过JavaScript验证、Cookie追踪、User-Agent检测等手段识别自动化流量
3.IP信誉系统
封锁高风险IP(如Tor节点),并基于速率限制防御DDoS攻击
4.边缘计算验证
利用Workers脚本执行客户端验证,例如验证码或JS挑战
二、绕过Cloudflare的关键技术
1. 请求头与流量特征伪装
User-Agent动态模拟: 使用随机化或主流浏览器的合法UA,避免触发规则库匹配。例如在Python中通过requests库设置动态UA头X-Forwarded-For伪造: 通过反向代理(如Cloudflare Worker)添加X-Forwarded-For头,覆盖真实IP地址Cookie复用与混淆: 从合法会话中提取Cookie,或通过Selenium等工具模拟浏览器环境生成有效Cookie案例 :通过自建Cloudflare Worker代理,注入自定义Header(如CF-Connecting-IP和X-Forwarded-For),将恶意流量伪装为来自Cloudflare信任的IP段,绕过地理封锁和速率限制
2. 命令注入的语法混淆
Cloudflare的WAF依赖正则表达式匹配攻击特征,通过语法变形可绕过检测:
未初始化变量插入: 在命令中插入未初始化的Bash变量(如catu/etcu/passwdu),利用Bash将其解析为空字符串,绕过关键字过滤字符编码与分割: 使用URL编码、Unicode或换行符(%0A)分割恶意语句。例如将cat /etc/passwd改写为cat${\u0065tc}/passwd注释干扰: 插入无害注释扰乱正则匹配,例如在SQL注入中使用/*!UnIon*/ selecT混合大小写和注释案例 :在RCE漏洞利用中,通过;catu/etcu/passwdu绕过Cloudflare对cat /etc/passwd的拦截,成功读取系统文件
3. SQL注入的混淆技术
内联注释与语法变形: 利用数据库特性绕过规则,例如MySQL中/*!50000UNION*/ SELECT强制版本执行分块传输编码: 通过分块传输(Chunked Encoding)分割注入语句,规避WAF的完整请求体检测多重编码混淆: 对注入语句进行多层URL或Base64编码,例如将UNION SELECT转换为%55%4E%49%4F%4E%20%53%45%4C%45%43%54案例 :在目标网站的SQL注入点,使用'/*!UnIon/*trick*/*/ sElect 1,2,3绕过WAF检测,成功提取数据库表名
4. 反向代理与边缘节点利用
Cloudflare Worker代理: 注册免费域名并部署自定义Worker脚本,将恶意流量路由至Cloudflare边缘节点,利用其IP信誉绕过封锁Tor网络结合代理池: 通过Tor切换出口节点,并配合代理池(如Scrapy Proxy)分散请求,规避IP速率限制案例 :搭建Worker代理转发请求至目标站点,注入CF-WORKER头伪装为合法流量,绕过Bot验证机制
5. 自动化工具与框架
WAF指纹识别: 使用WAFW00F或Nmap脚本(如http-waf-detect)识别Cloudflare规则版本,针对性构造Payload浏览器自动化: 通过Selenium或Playwright模拟完整浏览器行为,执行JavaScript挑战并获取合法会话Cookie穿云API集成: 调用穿云API自动化处理UA伪装、JS执行及Cookie管理,实现批量请求6. 基于协议漏洞的IP泄露
邮件服务器关联分析: 通过目标网站的邮件服务(如密码重置、订阅邮件)提取邮件头中的Return-Path或Received字段,直接获取未受Cloudflare保护的邮件服务器IP。
例如,某电商平台密码重置邮件的Received: from mail.example.com (192.168.1.100)泄露了源服务器IP。XML-RPC广播利用: 针对WordPress等平台,利用XML-RPC的pingback功能构造请求,通过sourceUri参数诱导服务器回连至渗透测试人员控制的服务器,从日志中提取源IPSSRF漏洞获取元数据: 若目标存在SSRF漏洞,可构造请求访问http://169.254.169.254/latest/meta-data/public-ipv4(AWS元数据接口)或/etc/hosts文件,直接获取真实IP