首页 网络安全 正文
  • 本文约1231字,阅读需6分钟
  • 15
  • 0

Postcontent的FlaskBlog XSS漏洞CVE-2025-53631

摘要

栋科技漏洞库关注到Flask-Blog博客引擎受影响版本中存在一处安全漏洞,该安全漏洞已被追踪为CVE-2025-53631,CVSS 4.0评分5.3。

Flask-Blog 是个基于Python Flask框架、layui前端框架和sqlite数据库的个人博客系统,支持前台和后台管理,允许用户自由使用和修改。

一、基本情况

Flask-Blog 是一个基于 Flask 框架开发的免费且开源博客引擎,该项目主要使用 Python 语言,结合 Flask 框架,实现了博客的基本功能。

Flask-Blog 遵守 MIT 开源协议,采用 Flask 作为后端框架、MongoDB 作为数据库,前端使用 Bootstrap 3、jQuery 和 Markdown 等技术。

Postcontent的FlaskBlog XSS漏洞CVE-2025-53631

栋科技漏洞库关注到Flask-Blog博客引擎受影响版本中存在一处安全漏洞,该安全漏洞已被追踪为CVE-2025-53631,CVSS 4.0评分5.3。

二、漏洞分析

CVE-2025-53631漏洞是Flask-Blog博客引擎在2.8.1及之前的版本中存在的漏洞,特定情况下可能被用来窃取敏感的用户数据或破坏网站。

攻击者可利用该漏洞在查看该帖子页面的任何用户的浏览器中执行JavaScript,在某些情况下可能被用来窃取敏感的用户数据或破坏网站。

该漏洞源于当向/createpost提交POST请求时,对postContent的不当净化,导致在帖子所反映的所有页面上执行任意JavaScript(XSS)。

这其中包括/、/POST/[ID]、/admin/posts和/user/[ID]。

postCardMacro.html模板第22行和dashboard.html模板第27行包含safe指令({{post[3]|safe}}),导致html符号不会像在其他变量中转义。

这可能能够从/createpost中的post编辑器呈现文本功能。

提交/createpost表单时,postContent变量在客户端被净化(例如<script>被转义为&lt;script&gt;),

但是可以通过拦截请求并用未转义的JavaScript代码替换postContent来修改这一点。

这将存储在数据库中,而不会在服务器端进行任何清理(在createPost.py的第42行读取:

postContent=request.form[“postContent”],并在数据库的第61行cursor.execute(插入到帖子中(…))中存储)。

此前也曾期列出了几个XSS漏洞,通过将app.jinja_options[“autoescape”]设置为True,使用此PR修复了这些漏洞。

尽管进行了此修复,但此漏洞仍然存在。

三、POC概念验证

1、以user身份登录

2、使用/createpost创建帖子,但拦截post请求

3、修改postContent表单数据参数以包含<script>警报('XSS')</script>

4、浏览到包含该帖子的任何页面(/、/post/[ID]、/admin/posts或/user/[ID]]),并观察JavaScript弹出窗口

四、影响范围

Flask-Blog <= 2.8.1

五、修复建议

未知

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接