当前位置:   article > 正文

Web安全基础学习:暴力破解漏洞之Token伪造_伪造token

伪造token

理论基础

  • 什么是Token

    Token全称JSON Web Token,又简称JWT,是一种用于身份验证和授权的开放标准。它是一种轻量级的、基于JSON的令牌,可以在客户端和服务器之间传递信息。JWT由三部分组成:header(头部).payload(载荷).signature(签证),形似如下:

    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
    eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IlJvY2siLCJhZG1pbiI6dHJ1ZX0.
    FgWU4K2h_NpZsfb9FxJcsmKRb3dNNlIgDeuD4onIx4A
    
    • 1
    • 2
    • 3

    其中header和payload部分由base64 URL编码进行编码,JWT Signature部分可以使用 HMAC 算法或使用 RSA 的公钥/私钥对进行签名。JWT的优点包括可扩展性、可靠性和安全性。

    简单的说,JWT就是通过数字签名的方式,以JSON对象为载体的开发标准,可以在不同的服务终端之间安全的传输信息。

    详细介绍:CSDN-JWT详解

  • Token伪造漏洞

    Token伪造,顾名思义通过伪造JWT,以特定账户的身份欺骗系统完成验证。Token伪造是一类漏洞的统称,可以是最简单的弱密钥爆破,也可以是其他高危漏洞,但无论类型如何变化,都是基于Token进行攻击并对其身份认证功能产生威胁。常见的关于Token漏洞如下:

    • CVE-2015-2951:alg=none签名绕过漏洞
    • CVE-2016-10555:RS / HS256公钥不匹配漏洞
    • CVE-2018-0114:Key injection漏洞
    • CVE-2019-20933 / CVE-2020-28637:Blank password漏洞
    • CVE-2020-28042:Null signature漏洞
    • JWKS欺骗
    • “kid”注射
    • 跨服务中继攻击
    • 弱密钥
    • ……
  • Token测试相关工具
    1. JWT弱口令爆破:jwtcrack
    2. JWT综合利用/测试工具:jwt_tool
    3. JWT密钥爆破:hashcat
  • Token漏洞防御
    1. 避免在令牌中直接传输用户的敏感数据以及系统内部的关键参数。
    2. 若使用对称加密算法,应使用强密钥提高秘钥破解的难度。
    3. 若使用非对称加密算法,应在服务端增加已授权算法的白名单,限制签名算法类型,防止密钥混淆攻击。
    4. 严格验证并过滤从用户端接收的数据,例如kid、jku等关键参数,防止因没有对参数进行正确校验而产生的安全风险。
    5. 在Payload字段中增加一些业务上的字段,用于校验。

实践学习

漏洞环境以Pilot靶场为例:下载地址与部署教程

  1. 使用任意账号登录,并抓包。这里以账号密码pilot/123456为例:

    l3-1

  2. 在响应包中获得Token值。返回WEB页面,点击身份认证按钮并抓包:

    l3-2

  3. 可以成功验证登录账号身份为pilot

  4. 修改参数username为管理员账号admin,尝试伪造身份:

    l3-3

  5. 提示Token过期或错误,说明Token信息与username参数传入的值不匹配,无法验证admin身份。

  6. 复制Token值至Token爆破工具jwtcracker,尝试爆破密钥:

    l3-4

  7. 获得Token密钥为“1”,通过JWT官方网站伪造Token:

    l3-5

  8. 复制修改后的Token,替换身份认证API中的Token值,再次验证:

    l3-6

    l3-7

  9. 通过修改Token,成功伪造身份为admin

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号