使用源服务器IP地址绕过Cloudflare WAF
这是来自Detectify Crowdsource黑客Gwendal Le Coguic的博客文章。这是一个关于如何使用源服务器IP地址绕过Cloudflare WAF的教程。
Cloudflare是一个广泛使用的Web应用程序防火墙(WAF)提供商。但是,如果你能在一秒钟内绕过所有这些保护措施,让防御变得毫无用处呢?本文是关于使用源服务器IP地址绕过Cloudflare WAF的教程。
请注意,以下内容可能与任何类型的Web应用程序防火墙都相关。
介绍
凭借超过1600万的Internet用户,Cloudflare现在是最受欢迎的Web应用程序防火墙(WAF)之一。一年前,Cloudflare发布了一款快速DNS解析器,这成为了他们提供服务的最大亮点。作为反向代理,WAF不仅提供了针对DDOS的保护,还可以在检测到攻击时触发警报。对于付费用户,可以选择打开针对SQLi,XSS和CSRF等常见漏洞的保护,但必须手动启用。此选项不适用于免费用户。虽然WAF非常擅长阻止基本的payload,但许多绕过Cloudflare WAF的方法已经存在,并且每天都会出现新的绕过,因此继续测试Cloudflare的安全性非常重要。在我写这篇文章的时候:
作为一个黑客bug赏金猎人,很明显,摆脱防火墙可能会非常有趣。为此,您基本上有3个选择:
- 自定义payload以绕过现有的规则。提高你的防火墙绕过技能可能很有意思,但这可能是一项繁琐而耗时的任务,而这对于一个赏金猎人来说是无法接受的——时间是最重要的!如果你想要这样做,你最好尝试在PayloadsAllTheThings中列出的很多payload 或在Twitter上搜索。
- 以适当的方式更改请求来中断服务。和第一个选择一样,它可能很耗时,需要耐心和良好的模糊测试技巧。Soroush Dalili写了一篇很好的演示文稿,可以通过使用HTTP标准和Web服务器的行为来帮助创建这样的请求。
- 通过查找Web服务器的原始IP来绕过Cloudflare。这可能是最简单的选择,不需要技术技能,它也是信息收集的一部分,所以不会浪费时间。一旦找到它,您就不必再担心WAF或DDOS防护(速率限制)。
在本文中,我将重点介绍最后一个选择,以及如何根据这里和那里获取的提示实现它。
提醒: Cloudflare是一个必须由用户(通常是开发人员或系统管理员)设置的工具。如果因为Cloudflare配置错误而导致下述攻击方法执行成功,Cloudflare不会对此负责。
首先,侦查!
我们的想法是开始正常的侦查过程并尽可能多地获取IP地址(host,nslookup,whois,ranges ...),然后检查哪些服务器启用了Web服务器(netcat,nmap,masscan)。获得Web服务器IP列表后,下一步是检查受保护的域是否在其中一个上配置为 虚拟主机。如果没有,您将获得配置的默认服务器页面或默认网站。如果是,那么你找到了切入点!使用Burp:
这显示了我正在寻找的子域名,但IP地址错误:
这显示了错误的子域,但具有良好的IP地址:
这显示了我正在寻找的子域名,而且具有良好的IP地址 - 完美!
可用于自动执行此过程的一些工具:
https://pentest-tools.com/information-gathering/find-virtual-hosts
https://github.com/jobertabma/virtual-host-discovery
https://github.com/gwen001/vhost-brute
Censys
如果您的目标有SSL证书(应该有!),那么它已在Censys 数据库中注册(我强烈建议您订阅)。在选择输入中选择“Certificates”(证书),提供目标域,然后点击<enter>
。
您应该看到适合您的目标的证书列表:
单击每个结果以显示详细信息,然后在右侧的“Explore”菜单中选择“IPv4 Hosts”:
您应该能够看到使用该证书的服务器的IP地址:
从这里,获取所有可用的IP,并回到上一章,尝试通过所有这些来访问您的目标。
邮件标题
下一步是检索目标发出的邮件中的标题:订阅newsletter,创建帐户,使用“忘记密码”功能,订购一些东西......简而言之,尽你所能从网站上获取电子邮件进行测试(注意可以结合使用Burp)。
一旦收到电子邮件后,请检查来源,尤其是标题。记录所有您能找到的IP,以及可能属于主机服务的子域。再次,试着通过它们访问您的目标。
报头的 Return-Path
的值对我来说非常有用:
使用Curl测试:
另一个技巧是将邮件从您自己的邮箱发送到不存在的电子邮件地址@yourtarget.com。如果发送失败,您应该收到退回通知。感谢@ _3P1C。
xml-RPC Pingback
WordPress中的这个众所周知的工具,即xml-RPC(远程过程调用),允许管理员使用xml请求远程管理他/她的博客。pingback是ping的响应。当站点A链接到站点B时,将执行ping,然后站点B通知站点A它知道所请求的内容。这是pingback。
您可以通过调用https://www.target.com/xmlrpc.php
轻松检查是否启用了它。你应该得到以下信息:xml-RPC server accepts POST requests only.
根据 WordPress xml-RPC Pingback API,这些函数需要2个参数 sourceUri
和 targetUri
。以下是Burp Suite中的样子:
感谢@Rivitheadz。
以前的发现
如果您无法使用前面的方法找到原始IP,或者当您第一次开始攻击时,网站没有受到保护,但最终该网站受到了保护,请记住,有时您最好的朋友本身就是您的目标,它可以为您提供您在找的信息。
基本上,您需要的是目标的Web服务器执行对服务器/协作者的请求。使用其他类型的问题也可能是一个好主意:SSRF,XXE,XSS或您已经找到的任何内容,注入一个包含您的服务器/协作者地址的payload,并检查日志。如果有任何命中,请再次检查虚拟主机。
即使是最简单的漏洞,如Open Redirect或HTML / CSS注入,如果由应用程序Web服务器解释,也会很有用。
工具
目前我们已经了解了如何手动查找和检查IP地址,幸运的是我们社区中有很棒的开发人员。以下是一些应该可以为您完成这项工作的工具,它们可以节省您宝贵的时间。一旦检测到Cloudflare保护,您就可以将它们包含在您的侦测过程中。
请注意,这些方法都不是100%可靠,因为所有目标都不同,对其中一个有效的方法可能对另一个无效。我的建议是:都试试。
Cloudsnare.py:censys证书(需要密钥)
HatCloud:crimeflare,ipinfo.io
CrimeFlare:crimeflare,ipinfo.io
bypass-firewalls-by-DNS-history:securitytrails,crimeflare
CloudFail:dnsdumpster,crimeflare,subdomain brute force
CloudFlair:需要censys密钥
CloudIP:nslookup一些子域名(ftp,cpanel,mail,direct,direct-connect,webmail,portal)
DNS资源
您可能已经明白,最重要的是尽可能多地获取IP地址——无论如何,无论在何处。DNS服务器当然是关注的焦点,特别是它们的历史将永远存在于Internet内存中。以下是您可以用来查找Graal的一些很好的资源。
Netcraft: https://toolbar.netcraft.com/site_report?url=
dns-trails: https://securitytrails.com/dns-trails
DNSQueries: https://www.dnsqueries.com/en/domain_check.php
DNSdumpster: https://dnsdumpster.com/
Shodan:https://www.shodan.io/search?query=
以往关于Hackerone的案例报告:
https://hackerone.com/reports/255978
https://hackerone.com/reports/360825
https://hackerone.com/reports/315838
结论
正如我们在安全行业中经常说的那样:一根链条的坚固程度取决于它最薄弱的一环。无论您花多少时间配置Cloudflare,如果它可以被绕过,如果您的Web应用程序可以通过服务器IP直接访问,那么Cloudflare提供的所有保护也会被绕过。由于你不再受到保护,它们就变得毫无用处。
可能还有很多其他方法可以实现此绕过任务,请随时在评论中或通过Twitter向我发送您的提示。我将非常乐意将它们添加到我的博客中。
我个人从来没有报道过这样的事情,但根据 Soroush Dalili的说法,能够绕过Cloudflare被认为是一种安全性错误配置,所以值得警惕。赏金 plzzzzzzzzzzzzzzzzzzzzzz!
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://thehackernews.com/2019/07/marcus-hutchins-sentenced.html
最新评论