Unhandled exception (#dd0d6d50)

未关闭 适合新手
#6,179 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
63/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
security

调研方向

从 lib/utils/jwt.py 中的 crackHMAC 和回溯信息中显示的 decodeBase64 调用开始;然后阅读 lib/controller/checks.py 中的 checkJWT 如何处理令牌。使用签名 Base64 长度无效的 JWT 重现问题,并检查审计能否在不发生未处理异常的情况下处理它。修复完成的标准是:格式错误的令牌不再导致 sqlmap 崩溃,并且现有的 JWT 审计行为得以保留。

由索引模型根据 Issue 内容生成。

描述

Running version: 1.10.9#stable
Python version: 3.14.7
Operating system: Linux-7.1.5+****-amd64-x86_64-with-glibc2.43
Command line: /usr/bin/sqlmap -r ******** --batch --level 3 --risk 2 --dump
Technique: None
Back-end DBMS: None
Traceback (most recent call last):
  File "sqlmap", line 254, in main
    start()
    ~~~~~^^
  File "/share/sqlmap/lib/core/decorators.py", line 108, in _
    result = f(*args, **kwargs)
  File "/share/sqlmap/lib/controller/controller.py", line 534, in start
    checkJWT()
    ~~~~~~~~^^
  File "/share/sqlmap/lib/controller/checks.py", line 1342, in checkJWT
    for _, severity, summary, __ in auditJWT(token, secrets=JWT_COMMON_SECRETS):
                                    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/share/sqlmap/lib/utils/jwt.py", line 134, in auditJWT
    secret = crackHMAC(token, secrets, crackLimit)
  File "/share/sqlmap/lib/utils/jwt.py", line 100, in crackHMAC
    target = decodeBase64(data["signature"], binary=True)
  File "/share/sqlmap/lib/core/convert.py", line 434, in decodeBase64
    retVal = base64.b64decode(value)
  File "/lib/python3.14/base64.py", line 85, in b64decode
    return binascii.a2b_base64(s, strict_mode=validate)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
binascii.Error: Invalid base64-encoded string: number of data characters (45) cannot be 1 more than a multiple of 4
主要语言
Python
星标
38.8k
派生
6.4k
平均合并
6 小时 27 分钟
30 天内合并 PR
5

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

sqlmapproject/sqlmap 的其他 Issue

查看 sqlmapproject/sqlmap 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。