CVE-2025-60299CVE-2025-60299是Novel-Plus 5.2.0版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞位于Novel-Plus的/book/addCommentReply端点,允许经过身份验证的低权限用户通过replyContent参数注入恶意的JavaScript代码。当用户在书籍评论区进行回复操作时,恶意payload会被存储到后端数据库中。随后,当其他用户浏览受影响的评论线程时,存储的恶意脚本将在其浏览器环境中自动执行,从而实现对受害者会话的劫持、敏感信息窃取或执行其他恶意操作。该漏洞的CVSS 3.1评分为5.4分,属于中等严重等级。由于该漏洞属于存储型XSS,影响范围广泛且持久,所有访问受影响评论页面的用户都可能成为攻击目标。Novel-Plus是一个基于Java开发的小说阅读管理系统,广泛用于内容发布和读者互动场景,因此该漏洞对依赖该平台的网站运营者和用户构成潜在的安全威胁。攻击者可以利用此漏洞窃取用户Cookie、会话令牌,或者通过伪造页面内容进行钓鱼攻击,甚至在特定条件下提升权限或执行管理员级别的操作。
该漏洞的根本原因在于Novel-Plus 5.2.0版本的/book/addCommentReply端点未对用户输入的replyContent参数进行充分的输出编码和过滤。具体而言,当用户提交书籍评论回复时,前端将回复内容通过HTTP请求发送到后端,后端直接将用户输入的内容存储到数据库中,而没有对其中可能包含的HTML标签和JavaScript代码进行转义或过滤。当其他用户请求查看该评论线程时,后端从数据库中读取存储的回复内容并直接返回给浏览器进行渲染,浏览器将恶意脚本作为合法内容执行,从而触发XSS攻击。从技术层面分析,攻击者需要具备有效的用户凭证(低权限账户即可),通过构造包含恶意JavaScript的payload(例如<script>alert(document.cookie)</script>或更复杂的窃取脚本),将其作为回复内容提交。服务器端未实施内容安全策略(CSP)头或输入消毒机制,导致payload得以持久化存储。由于漏洞影响的是评论回复功能,攻击者可以精心设计payload,使其在管理员查看评论时触发,从而实现权限提升或后台接管。修复方案应包括对所有用户输入实施严格的HTML实体编码,部署内容安全策略头,以及使用成熟的XSS过滤库进行输入验证和输出转义。