Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-49438 — CVE-2023-49438 - Flask-Security-Too 中的开放重定向漏洞 | Kitploit
工具/GitHubGitHub/brandon-t-elliott/cve-2023-49438
漏洞分析Web应用程序漏洞利用Web安全论文与研究学习与教育
GitHubbrandon-t-elliott/cve-2023-49438

CVE-2023-49438

CVE-2023-49438 - Flask-Security-Too 中的开放重定向漏洞

查看仓库
522年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-49438

概念验证

flask-security-too-open-redirect

描述

Python 包 Flask-Security-Too <=5.3.2 版本中存在一个开放重定向漏洞,攻击者可以通过滥用 /login 和 /register 路由上的 ?next 参数,构造恶意 URL 将毫无戒心的用户重定向至恶意站点。

背景

Flask-Security-Too 包含验证 next 参数中指定的 URL 是否为相对路径或与请求 URL 具有相同网络位置的逻辑。该机制旨在防止开放重定向。

该 Python 包 此前已被发现存在漏洞,可绕过现有的验证逻辑;4.1.0 版本修复了此前已知的示例,例如 https://example/login?next=\\\github.com。

然而,由于 Web 浏览器对 URL 中斜杠的标准化方式,发现了一种绕过方法,使得 <=5.3.2 版本仍然存在漏洞。

示例

https://example/login?next=/\github.com

https://example/login?next=\/github.com

影响

在 CVE-2021-32618 中曾指出:“如果使用 Werkzeug(Flask 应用非常常见)作为 WSGI 层,它默认总是确保 Location 头是绝对的——从而使得这种攻击向量无效。”

然而,在 Werkzeug >=2.1.0 中,autocorrect_location_header 配置已更改为 False——这意味着重定向中的 Location 头默认是相对的。因此,如果应用程序使用 Werkzeug >=2.1.0 作为 WSGI 层,此前未受影响的应用程序可能会受到影响。

缓解措施

  1. 更新 Flask-Security-Too 至 5.3.3
root@kitploit:~
pip install -U Flask-Security-Too

或

  1. 在应用中添加以下配置选项(可缓解所有当前已知的示例):
root@kitploit:~
app.config['SECURITY_REDIRECT_VALIDATE_MODE'] = "regex"
app.config['SECURITY_REDIRECT_VALIDATE_RE'] = r"^/{4,}|\\{3,}|[\s\000-\037][/\\]{2,}(?![/\\])|[/\\](https://github.com/brandon-t-elliott/cve-2023-49438/blob/main/%5B%5E/%5C%5C%5D%7C/%5B%5E/%5C%5C%5D)*[/\\].*"

或

  1. 如果使用 Werkzeug >=2.1.0,手动确保 autocorrect_location_header 设置为 True:
root@kitploit:~
@app.after_request
def fix_location_header(response):
    response.autocorrect_location_header = True

    return response

CVE 参考

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-49438

https://nvd.nist.gov/vuln/detail/CVE-2023-49438

致谢

绕过方法由 Brandon T. Elliott 于 2023 年 11 月发现。

下载工具