这是一篇由Detectify Crowdsource的白帽子Gwendal Le Coguic编写的客座博客。本篇文章会教你利用源服务器的IP地址绕过Cloudflare WAF。
简介
Cloudflare WAF是目前最流行的web应用防火墙之一,防护着超过1600万个网络资产。一年前Cloudflare发布了一个快速DNS resolver,并很快成为它们最受欢迎的产品。WAF作为一个反向代理服务器,不仅可以抗DDoS攻击,还可以在检测到攻击时触发告警。付费版本的用户还可以选择开启防护SQL注入、XSS、CSRF等常见漏洞攻击,但必须要手动启动。免费版本不支持这个功能。 虽然该WAF很擅长于阻挡基础的攻击载荷,但已经有很多绕过Cloudflare WAF的方法,而且每天都会出现新的,所以持续测试Cloudflare防火墙的安全性十分重要。就在我写这篇文章的时候:![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 N3EE8H7CMW3838T - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_N3EE8H7CMW3838T.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 R45V2EV2TH7TUMB - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_R45V2EV2TH7TUMB.jpg)
首先,侦察!
开始正常的侦察过程,获得尽可能多的IP地址(主机、nslookup域名解析服务器、whois服务器、BGP路由),然后检查哪些服务器有可用的web服务(netcat、nmap、masscan等工具)。一旦你有了web服务器的IP地址列表,下一步就是检查这些服务器是否配置了保护域作为虚拟主机。如果没有,你将会获得默认服务器页面或默认网站配置,这样你就找到了入口!使用Burp: 这是我想要的子域名,但是IP地址不正确:![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 WPCGD43DX7UZCKU - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_WPCGD43DX7UZCKU.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 699B462HJEREFHK - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_699B462HJEREFHK.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 255KFGKG2JBY842 - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_255KFGKG2JBY842.jpg)
Censys
如果你的攻击目标使用了SSL证书(使用SSL是必须的),而且是在Censys数据库已注册的(我强烈建议去买一个)。在Censys选择输入时选择“证书”,提供你目标服务器的域名,点击回车。 你会看到适用于你目标的证书列表:![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 4SP2GQCN5WBPCZK - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_4SP2GQCN5WBPCZK.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 HK6EWW6JSJMYZWF - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_HK6EWW6JSJMYZWF.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 T8ZDY53V4CE27BW - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_T8ZDY53V4CE27BW.jpg)
邮件头
下一步,检查你的目标服务器发出的邮件头:订阅新闻,创建用户,使用“忘记密码”功能,订购……尽你所能从测试网站获得一封邮件(提醒一下可以使用Burp)。 得到邮件后,检查邮件源文件,特别是邮件头。记录可以找到的所有可能属于一个服务器的IP和子域名。再一次,尝试通过这些访问你的目标。 我在邮件头Return-Path里找到了一些信息:![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 PBDVXUKM53AH5H3 - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_PBDVXUKM53AH5H3.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 2RBWAHRXRQ5CQ8B - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_2RBWAHRXRQ5CQ8B.jpg)
XML-RPC广播
XML-RPC(远程过程调用)是一个在WordPress博客平台很有名的工具——允许管理员使用XML请求远程管理其博客。ping包是ping命令的响应包。A发送ping请求到B,B回复A收到了请求,即回复一个ping包。 访问https://www.target.com/xmlrpc.php可以轻松知道目标服务器是否启用了XML-RPC广播,启用的情况下会返回信息:XML-RPC server accepts POST requests only。 根据WordPress XML-RPC Pingback API文档,该功能有sourceUri和targetUri两个参数。在Burp Suite中可以看到:![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 HB54DAZVH4VAXDB - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_HB54DAZVH4VAXDB.jpg)
以前的发现
如果你用上述方法没有找到原始IP,或者之前的目标网站设置了保护措施,记住,有时候你最好的朋友就是目标自己,它会给你想要的信息。 你需要的就是让目标web服务器发送请求到你的服务器。利用SSRF、XXE、XSS等其他类型的漏洞,注入包含你服务器地址的载荷并查看日志。如果命中再检查虚拟主机。 甚至是像重定向或HTML/CSS注入等这些最简单的漏洞,如果被应用web服务器解析就会派上用场。工具
现在我们已经知道怎样手动寻找IP地址,下面是一些工具可以帮助你节省宝贵的时间。你可以在探测Cloudflare保护机制时用这些工具进行侦察。 记住,没有100%管用的方法,因为攻击目标的不同,适用于某个的不一定适用于另一个。我的建议:都试试。 Cloudsnare.py:censys证书(需要密钥) HatCloud:crimeflare,pinfo.io CrimeFlare:crimeflare,ipinfo.io bypass-firewalls-by-DNS-history:securitytrails,crimeflare CloudFail:dnsdumpster,crimeflare,子域名暴力攻击 CloudFlair:需要censys密钥 CloudIP:nslookup一些子域名(ftp,cPanel,mail,direct,direct-connect,webmail,portal)![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 DDUZKMDCAMVG73R - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_DDUZKMDCAMVG73R.jpg)
![[翻译]利用源服务器IP地址绕过Cloudflare WAF 642375 EMH5ZPZKY65VTBH - [翻译]利用源服务器IP地址绕过Cloudflare WAF](http://blog.zhezhe168.com/wp-content/uploads/2020/10/642375_EMH5ZPZKY65VTBH.jpg)
Leave a reply