WordPressTelegram插件未授权接管管理员账号"

admin 2026-11-01 01:39:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

WordPress Telegram 插件未授权接管管理员账号

红队安全圈
红队安全圈

红队安全圈

2026年10月29日 20:11
重庆

去阅读

一个 WordPress Telegram 购物插件,webhook 不验签、令牌可预测、兑换即登录——知道用户名就能接管管理员账号。

01  引言

插件 Bot for Telegram on WooCommerce 的作用是把 WooCommerce 商店接进 Telegram 机器人,用户在 TG 里就能逛店、下单。它注册了一个完全公开的 REST 端点 /wp-json/woo-telegram/v1/main/ 来接收 Telegram 官方推来的 webhook 更新——问题就出在这里:这个端点既不校验请求是不是真的来自 Telegram 的服务器,后续登录令牌的生成和兑换也全是可预测的。全部版本至 1.3.0(含)受影响,CVSS 9.8 Critical,条件极低:只要知道目标用户的用户名,不需要任何认证就能接管账号。

02  漏洞速览

漏洞编号CVE-2026-109516

影响产品Bot for Telegram on WooCommerce

影响版本≤ 1.3.0(1.3.1 已修复)

漏洞类型未授权认证绕过 → 账户接管

危害等级CVSS 9.8 Critical

在野利用暂无报告 / 暂无公开 PoC

攻击前提知道目标用户的用户名

03  漏洞成因

整条链由四个缺陷串起来,我翻了 1.3.0 的源码,每一环都能对上。

第一环:webhook 端点无鉴权。插件在 BFTOW\_Telegram.php 里注册 REST 路由时,权限回调直接写死放行:

register\_rest\_route(

'woo-telegram/v1', '/main/', array(

'methods' => ['GET', 'POST'],

'permission\_callback'

=> '\_\_return\_true',

'callback'

=> array($this, 'get\_tg\_data'),

));

Telegram 官方 webhook 是支持 secret\_token 校验的(请求头 X-Telegram-Bot-Api-Secret-Token),这个插件完全没用。也就是说任何人 POST 一段伪造的\"机器人更新\"JSON,插件都会当真处理。

第二环:chat.id 直接映射到 WordPress 用户。get\_tg\_data() 从请求体里取 message.chat.id,交给 bftow\_get\_user\_system\_id()。这个函数先按 bftow\_telegram\_chat\_id 这个 user meta 找用户,找不到就走兜底逻辑:

$user = get\_user\_by('login',

$tgId);

if($user) {

update\_user\_meta($user->ID,

'bftow\_telegram\_chat\_id',

$tgId);

return $user->ID;

}

没有要求任何所有权证明:攻击者在 JSON 里把 chat.id 写成 admin 的登录名,这个函数就把 admin 的用户 ID 还回来。

第三环:登录令牌可预测。用户登录令牌的生成在 BFTOW\_User.php 里:

update\_user\_meta($userId,

'bftow\_user\_token',

md5( $client . time() ) );

client 取自 $\_SERVER['HTTP\_USER\_AGENT']——攻击者自己发请求,UA 当然自己定;time() 是服务器当前时间戳,响应头的 Date 字段把它缩小到秒级。两个输入全部可控或可猜,md5 结果就是明牌。

第四环:令牌兑换即登录。拿到令牌后访问 ?action=bftow\_create\_order&bftow\_token=...,BFTOW\_WooCommerce.php 的 set\_user\_from\_token() 按 bftow\_user\_token meta 反查用户,然后无条件调用:

$user->login\_user\_by\_id(

$this->user\_id);

// 内部:

wp\_set\_auth\_cookie($user\_id,

true, false);

没有能力检查、没有 nonce、没有来源限制,直接给攻击者签发该账号的持久化认证 Cookie。至此,任意账号接管完成。

04  影响范围

受影响:Bot for Telegram on WooCommerce 全部版本至 1.3.0(含)。

已修复:1.3.1 及以上。

05  利用分析

利用不需要任何插件配置以外的信息,三步:

第 1 步:伪造 webhook,写死目标用户名。向 /wp-json/woo-telegram/v1/main/ POST 一段仿造的 Telegram 更新,message.chat.id 填目标登录名(如 admin)。这一步会触发兜底逻辑,把 admin 的用户 ID 解析出来,并给这个账号写入一个用 md5(UA + time()) 算出的新令牌。

第 2 步:算出令牌。自己的请求 UA 自己定,服务器时间从响应的 Date 头拿,本地枚举 time() ±几秒的取值逐个 md5,几秒内必中。

第 3 步:兑换令牌登录。访问:

https://target/?

action=bftow\_create\_order

&bftow\_token=

服务器执行 wp\_set\_auth\_cookie(),浏览器拿到 admin 的登录态,直接进后台。

06  检测与排查

判断自己是否装了受影响插件:

curl -s https://目标站/wp-content/

plugins/

bot-for-telegram-on-woocommerce/

readme.txt | grep -i \"stable tag\"

返回 1.3.0 及以下即受影响。也可看后台插件页版本号。更直接的验证:向 /wp-json/woo-telegram/v1/main/ 随便 POST 一个 JSON,返回非 401/403(端点存在且公开处理)就该警惕了。

07  修复建议

立即升级插件到 1.3.1 或更新版本。

若暂时不能升级且用不到 TG 购物功能,直接停用插件。

管理员账号启用双因素,并检查近期可疑登录。

全站用户如果令牌已被写过,升级后建议重新登录一次刷新会话。

08  红队视角

这个洞的价值在于门槛极低、链路自洽:无认证入口、用户名即密钥、令牌可预测、兑换即登录,四个环节凑齐了一条教科书式的认证绕过。实战里管理员的用户名往往不是秘密——/?author=1 重定向、文章作者归档、REST 用户枚举 /wp-json/wp/v2/users 都能拿到。

对蓝队来说,重点检查的不只是插件版本,还要看 WAF 有没有对这个 REST 端点的异常 POST;对红队来说,遇到 WooCommerce 站点,把\"TG 机器人插件\"加进指纹清单,命中率高得超预期。这也是个老提醒:webhook 类功能必须验签,\_\_return\_true 这种权限回调出现在生产代码里,基本等于给互联网留了后门。

想要文中检测命令 / 令牌推算思路清单的,留言说一声;关注不迷路,更新看得见。

— END —

月之暗面最新模型削弱网络安全攻击能力,AI渗透本地化才是未来" 网络安全文章

月之暗面最新模型削弱网络安全攻击能力,AI渗透本地化才是未来"

文章分析月之暗面KimiK3.1Pro削弱攻击能力但防御能力登顶,指出云端模型能力可控权不在使用者,攻击能力不会因训练裁剪消失。建议敏感攻防任务本地化部署,需完成模型本地、数据不出域、自建评测集三层,并保留完整审计链。本地化需承担算力、能力落差、安全、人力四笔成本,四条具体路径可操作性强。
WordPressTelegram插件未授权接管管理员账号" 网络安全文章

WordPressTelegram插件未授权接管管理员账号"

WordPressTelegram购物插件BotforTelegramonWooCommerce存在严重漏洞CVE-2026-109516,影响至1.3.0版本,CVSS9.8。漏洞链包含webhook端点无鉴权、chat.id映射用户、令牌可预测及兑换即登录四环,攻击者仅需知道用户名即可接管管理员账号。建议立即升级至1.3.1或停用插件,启用双因素认证并检查可疑登录。
滴滴开源HelixHarness:让团队AICoding稳定交付" 网络安全文章

滴滴开源HelixHarness:让团队AICoding稳定交付"

滴滴金融技术团队开源了面向团队的AICodingHarness-HelixHarness,以解决AICoding在真实工程环境中的稳定交付问题,包括工程化支撑、过程可观测、能力评测和团队适配等方面。HelixHarness提供工程化基础设施,让AI理解项目、遵循规范,并记录执行过程和评估效果。
评论:0   参与:  0