当已知某站存在漏洞时,Web 应用程序防火墙(简称WAF)是最大的阻碍。通常,这些网站都很老旧,维护得不是很好,因此在大多数情况下,将 WAF 放在它们之上会更容易。有一种方法可以绕过这一层保护,那就是是找到原始 IP 地址,接下来我们来一起探讨一下。
防火墙基础知识
这是防火墙工作原理的基本图表:
普通用户通过防火墙发送请求,防火墙检查请求是否合法,然后将该请求传递给服务器。然后服务器处理该请求,将其发送回防火墙,防火墙将其发送给客户端。这样做是因为原始服务器不想向客户端透露自己的 IP。另一方面,黑客(标有骷髅图标)不想通过中间人,而是想直接进入服务器。例如,如果您发送 SQL 注入、XSS 或其他有效负载 — 这些请求可能会被防火墙规则阻止。这就是为什么最好通过了解服务器的位置 — 找到原始 IP — 来避免绕过 WAF 的麻烦。
有时可能会出现请求被服务器本身阻止的情况,或者有时可能会重新路由,例如直接转发,也可能被重新路由到防火墙,但这些情况都是例外。这次我们将尝试找到一种方法,只需访问此处的原始 IP 并尝试直接通信即可。
WAF 探测
您始终应该做的第一件事是检查目标是否确实安装了 WAF。有几种简单的方法可以做到这一点,我喜欢做的第一件事是 ping 目标。在此示例中,我将 ping 我自己的网站:
如您所见,它以 IP 进行响应。如果它以该 IP 进行响应,则并不意味着它会像服务器的原始 IP。它可能是一个 WAF的 IP 地址。如果我们尝试直接访问它,它将显示常规 Cloudflare 错误:
您还可以尝试使用 Wappalyzer 插件。如果您尝试检查此网站,它将显示我正在使用 Cloudflare:
另一件事是在终端使用dnsrecon:https://github.com/darkoperator/dnsrecon之类的工具:
dnsrecon -d ott3rly.com
此命令将访问 DNS 记录,这也可以显示服务器可能使用了什么 WAF:
如果服务器不使用任何 WAF,有时您可能会泄露原始 IP 地址,但在这种情况下,我们可以看到很多 Cloudflare 名称服务器。
如果您不是 CLI 工具的忠实粉丝,您也可以查看who.is:http://who.is/网站。
方法1—Shodan
我推荐的下一个查找原始 IP 的方法是使用 Shodan。使用基本搜索也可以轻松检查大量泄露的 IP。您可以通过不包括已知的 WAF 标头、响应等条件来过滤掉一些P,。我通常也会按 200 状态代码进行过滤。我喜欢将 SSL shodan dorks 与上述过滤器一起使用:
方法 2 — Censys
另一个很好的 IP 侦察工具是使用censys:https://search.censys.io/。只需将您的目标粘贴到Censys搜索栏中,您就会得到非常有趣的结果:
如您所见,左侧有很多过滤选项,因此您也可以尝试一些过滤。例如,Akamai、Amazon 和类似的东西对我们来说并不重要,因此您应该尝试过滤掉它们。
方法3——Security Trails
最后,我最喜欢的方法是使用Security Trails:https://securitytrails.com/。我建议创建一个免费帐户方便自由使用它。此工具非常适合仅针对单个网站以了解其 IP 地址。我将以我自己的网站为例,并尝试访问历史数据:
当我在搜索栏中输入ott3rly.com并尝试访问历史数据时,DNS的A记录确实值得一看。如您所见,在使用 Cloudflare 之前,该网站未受 WAF 保护,因此其原始 IP 被泄露。在这种情况下,它是托管服务提供商的原始 IP,所以这不是什么大问题,但通常,在常规测试场景中,您可能会偶然发现 VPS IP 地址。在这种情况下,有可能直接通过其 IP 访问页面。
最后
如果您在目标上尝试这些方法,在漏洞挖掘中可能就不会被WAF 检测到。这将使你的漏洞利用过程变得轻松得多,例如模糊测试 XSS、SQL 注入……因此,在构建复杂的payload之前,我强烈建议您先尝试找到原始 IP。
获取网络安全优质免费学习资料与干货教程+
送渗透工具、技术文档、书籍,面试题、视频(基础到进阶。环境搭建,HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)、应急响应笔记、学习路线。
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。