MyCode83/bflask

GitHub: MyCode83/bflask

bflask 是一款高性能的 Flask session cookie 暴力破解与签名工具,用于恢复 SECRET_KEY 并验证、解码或伪造 Flask 会话 cookie。

Stars: 0 | Forks: 0

# bflask ![Go](https://img.shields.io/badge/Go-1.25-blue?logo=go) ![go-itsdangerous](https://img.shields.io/badge/go--itsdangerous-compatible-blue) ![bflask](https://img.shields.io/badge/bflask-CLI-064E3B) ## 基准测试 | 工具 | 耗时 | |------|------| | flask-unsign | 677.76s | | bflask | **48.54s** | ![bflask 基准测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/55/559c6ae77cbc9cd173ab386aa4e1384cd4cac9a5b6a4ced84665b2fe142f3d36.jpg) ## 安装说明 ``` go install github.com/MyCode83/bflask@latest ``` 从源码安装: ``` go build . ``` ## 使用说明 ``` bflask crack \ -c "eyJ1c2VyIjoiYWRtaW4ifQ..." \ -w rockyou.txt \ -t 100 ``` JSON 输出: ``` bflask crack -c "$COOKIE" -w keys.txt -j ``` 使用 SHA-256 和 timeout: ``` bflask crack -c "$COOKIE" -w keys.txt -d sha256 --timeout 2m ``` 将匹配结果写入文件: ``` bflask crack -c "$COOKIE" -w keys.txt -o result.json ``` 仅打印恢复出的 `SECRET_KEY`: ``` bflask -q crack -c "$COOKIE" -w keys.txt ``` 对 cookie 进行签名并仅打印 cookie 值: ``` bflask -q sign -k supersecret -p '{"user":"admin"}' -s cookie-session -d sha256 ``` 解码 cookie payload: ``` bflask decode -c "$COOKIE" ``` 仅解码原始 payload: ``` bflask -q decode -c "$COOKIE" --raw ``` ## 配置 优先级顺序为 `CLI > ENV > CONFIG > DEFAULT`。 示例 `config.yaml`: ``` cookie: "" wordlist: "./wordlist.txt" threads: 50 salt: "cookie-session" digest: "sha1" verbose: false timeout: "0s" output: "" json: false quiet: false ``` 使用配置文件: ``` bflask --config config.yaml crack ``` 环境变量使用 `BFLASK_` 前缀: ``` BFLASK_THREADS=200 BFLASK_DIGEST=sha256 bflask crack -c "$COOKIE" -w keys.txt ``` 运行 `bflask --config config.yaml` 时不带任何子命令,将使用配置文件中的值启动 `crack`。 运行 `bflask` 时不带配置文件或子命令,将打印帮助信息。 ## Flask Cookies 的工作原理 Flask 的默认 session 将数据存储在客户端,并通过 itsdangerous 使用 `SECRET_KEY` 进行签名。数据未经过加密。如果签名密钥被猜测到,就可以对 payload 进行验证和解码。`bflask` 使用兼容 URLSafeTimedSerializer 的 HMAC 签名来检查候选密钥,默认使用 `cookie-session` salt 和 SHA-1。 压缩的 Flask cookies 以 `.` 开头。当找到有效密钥时,`bflask` 支持解码这些 zlib 压缩的 payload。 ## Flask 示例应用 用于生成测试 cookie 的小型应用位于 `examples/flask/app.py`: ``` cd examples/flask python -m flask --app app run ``` 访问 `http://127.0.0.1:5000/`,复制 `session` cookie,并使用包含 `supersecret` 的字典、salt `11`、摘要算法 `sha256` 进行测试。 ## 故障排除 `invalid Flask cookie format`:只需传入 cookie 值,不要传入 `session=` 或完整的 `Cookie:` header。 `unsupported digest`:请使用 `sha1`、`sha224`、`sha256`、`sha384`、`sha512` 或 `md5` 之一。 未找到匹配结果:请检查 salt、摘要算法、字典编码,以及目标是否使用了 Flask 默认的签名 session 序列化器。
标签:DOS头擦除, EVTX分析, Flask, Go语言, Web安全, 动态分析, 密码破解, 文档结构分析, 日志审计, 程序破解, 蓝队分析