通过查找真实IP bypass WAF

当已知某站存在漏洞时,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.ishttp://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,暴力破解等等)、应急响应笔记、学习路线。

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

相关推荐
woshilys6 分钟前
sql server 查询对象的修改时间
运维·数据库·sqlserver
疯狂飙车的蜗牛35 分钟前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
迷雾漫步者1 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
恩爸编程1 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
向前看-2 小时前
验证码机制
前端·后端
燃先生._.3 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
Michaelwubo3 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
远游客07133 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
好像是个likun3 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器