绕过Cloudflare IP白名单限制的两种实用技术

123 阅读3分钟

欢迎来到“RIP Cloudflare”系列,在这个系列中,我们将戳穿Cloudflare闪亮盔甲上的漏洞,像挖掘宝藏一样找出它隐藏的源站IP。企业和开发者喜欢像贴“禁止入内”标志一样将Cloudflare套在他们的网站上,却忘了他们的后端可能还只是用胶带勉强粘合起来的。在本系列中,我将向你展示如何溜过Cloudflare的“保镖”,闯入源站服务器的“派对”。让我们看看幕后究竟发生了什么!

在这一部分,我们将讨论一个常见的场景:你已经发现了源站IP地址,但却遇到了403 Forbidden错误,或者发现端口是关闭的。这通常是因为服务器被配置为只允许来自Cloudflare IP地址段的流量,而阻止了所有其他连接。这种限制通常通过iptablesnginx配置或.htaccess文件等工具来实施。

例如,下面是一个典型的nginx配置,它只允许Cloudflare的IP访问:

# /etc/nginx/conf.d/cloudflare-only.conf
# Cloudflare IP 范围 (IPv4 和 IPv6)
allow 173.245.48.0/20;
allow 103.21.244.0/22;
allow 103.22.200.0/22;
allow 103.31.4.0/22;
allow 141.101.64.0/18;
allow 108.162.192.0/18;
allow 190.93.240.0/20;
allow 188.114.96.0/20;
allow 197.234.240.0/22;
allow 198.41.128.0/17;
allow 162.158.0.0/15;
allow 104.16.0.0/13;
allow 104.24.0.0/14;
allow 172.64.0.0/13;
allow 131.0.72.0/22;
allow 2400:cb00::/32;
allow 2606:4700::/32;
allow 2803:f800::/32;
allow 2405:b500::/32;
allow 2405:8100::/32;
allow 2a06:98c0::/29;
allow 2c0f:f248::/32;
# 拒绝所有其他 IP
deny all;

面对这种限制,有几种方法可以绕过它。让我们来探讨两种有效的技术。

方法 1: 使用 Cloudflare Workers

Cloudflare Workers 是一个无服务器执行环境,允许你在 Cloudflare 的全球网络上运行代码。由于 Workers 在 Cloudflare 的基础设施内运行,因此可用于绕过 IP 白名单限制。

以下是如何使用 Cloudflare Worker 作为反向代理的方法:

  1. 前往 Cloudflare Workers Playground
  2. 使用以下代码创建反向代理:
export default {
  async fetch(request, env, ctx) {
    const targetUrl = "https://rip.cloudflare";
    try {
      // 克隆传入的请求,以便将其转发到目标 URL
      const forwardedRequest = new Request(targetUrl, {
        method: request.method,
        headers: new Headers(
          [...request.headers].filter(
            ([key]) => key.toLowerCase() !== "host"
          )
        ),
        body:
          request.method !== "GET" && request.method !== "HEAD"
            ? request.body
            : null,
      });

      // 将请求转发到目标服务器
      const response = await fetch(forwardedRequest);

      // 克隆响应以返回给客户端
      const responseHeaders = new Headers(response.headers);
      const responseBody = await response.text();

      return new Response(responseBody, {
        status: response.status,
        headers: responseHeaders,
      });
    } catch (error) {
      console.error("反向代理期间出错:", error);
      return new Response("内部服务器错误", {
        status: 500,
      });
    }
  },
};
  1. 点击 Go 执行代码。

绕过成功 :p

该 Worker 充当中间人,通过 Cloudflare 的网络转发你的请求,从而有效绕过 IP 白名单限制。

方法 2: 在 Cloudflare 仪表板中添加 DNS 记录

另一个直接的方法是在 Cloudflare 仪表板中添加一条新的 DNS 记录。操作步骤如下:

  1. 登录到你的 Cloudflare 仪表板。
  2. 添加一条指向源站 IP 地址的新 A 记录
  3. 启用 Proxy 选项(橙色云朵图标)。
  4. 保存更改。

一旦 DNS 记录生效,你就可以通过这个新域名访问源站服务器,从而有效绕过 IP 白名单。

绕过成功 :p

虽然 Cloudflare 提供了强大的安全功能,但它并非无懈可击。通过利用 Cloudflare Workers 或操作 DNS 设置等工具,你可以绕过 IP 白名单限制并访问源站服务器。然而,需要注意的是,这些技术只应出于道德目的使用,例如渗透测试或安全研究。

请继续关注“RIP Cloudflare”系列的下一部分,届时我们将探索更先进的技术来发现和绕过 Cloudflare 的防御。

祝你黑客愉快! CSD0tFqvECLokhw9aBeRqvDduZ8FI2/1UfAsfF3s6VXEyn3EiEMqFbJCXcszGMqGRTfmPAH7jxgeD+n0u8L9OjuL7Dw+vALmoNzb4m7wdrxjhFWIs07Umn2nHfGMh3Lm