【CVE-2020-9483】Apache SkyWalking 存在的SQL注入漏洞复现

CVE-2020-9483 Apache SkyWalking 存在的SQL注入漏洞复现

1. 环境

使用的工具

  • VMWare中的Ubuntu虚拟机:20.04
  • IDEA:2021.2.1
  • Burp Suite Community Edition:2022.3.9

环境搭建

虚拟机中运行SkyWalking服务

漏洞影响的版本有6.0.0-6.6.0、7.0.0
此处选择6.5.0版本
首先在官网上下载压缩包:https://www.apache.org/dyn/closer.cgi/skywalking/6.5.0/apache-skywalking-apm-6.5.0.tar.gz,并解压到Ubuntu虚拟机中
运行SkyWalking需要java环境,所以需要安装JDK

sudo apt-get install openjdk-8-jdk

在/webapp/webapp.yml文件中修改服务端口,不修改也可,默认是8080
在这里插入图片描述

在/bin/oapService.sh文件中加入远程调试命令,其中需要注意的是address=5001是开放给远程调试的端口

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5001

在这里插入图片描述
执行startup.sh,开启SkyWalking服务

./bin/startup.sh

检查是否服务运行成功
查看5001端口是否处于监听状态
在这里插入图片描述
查看/logs/webapp.log中的日志打印信息,有服务启动成功的日志信息
在这里插入图片描述
浏览器中访问8081端口
在这里插入图片描述

IDEA中调试SkyWalking

下载源码
在github上下载6.5.0版本的源码:https://github.com/apache/skywalking/tree/v6.5.0
导入IDEA
使用IDEA打开,IDEA解析源码时间比较长,大概要四五十分钟
配置远程调试
添加Remote配置

  • 设置module classpath为oap-server
  • 指定IP地址为Ubuntu虚拟机的地址
  • 指定端口号为5001,需要与SkyWalking开放的远程调试端口一致
    在这里插入图片描述
    点击调试,控制台输出如下信息,至此环境搭建成功
    在这里插入图片描述

2. 原理

查询资料可以SQL注入的位置如下
在这里插入图片描述
在IDEA中直接全局搜索getLinearIntValues可直接定位
在这里插入图片描述

alt+F7快捷键查找所有调用getLinearIntValues方法的地方可以定位到MetricQueryService的getLinearIntValues方法
在这里插入图片描述
继续向上追溯,定位到MetricQuery的getLinearIntValues方法
在这里插入图片描述
再往上就没有调用了,而MetricQuery类实现了GraphQLQueryResolver接口,说明这是一个支持GraphQL的查询服务的类
在这里插入图片描述
至此,可以分析出想要执行getLinearIntValues方法是使用GraphQL语法查询H2数据库(H2数据库是纯Java编写的内置数据库),所以需要构造GraphQL请求

3. SQL注入

配置代理转发

想要构造GraphQL查询请求,需要使用Burp Suite拦截一下包,分析格式。
将浏览器的请求转发到8080端口
在这里插入图片描述
同时在Burp Suite设置监听8080端口
在这里插入图片描述
刷新SkyWalking,拦截到POST请求,且是GraphQL
在这里插入图片描述

IDEA调试

在执行SQL查询处下断点
在这里插入图片描述

构造正常的GraphQL请求如下
在这里插入图片描述
发送post请求,在断点处停下,分析可以输入的id:123被拼接到ids里面用于查询
在这里插入图片描述
进入executeQuery,可以查看SQL查询的语句
在这里插入图片描述
由此可以构造SQL注入语句

  • 首先构造括号,使上一个select语句直接结束
  • 然后用UNION联合查询,后面使用user()函数查询用户名
  • 最后加上“–”,表示注释掉后面的内容
id: \"') UNION SELECT 1,CONCAT('-----', user(), '-----')--\"

在这里插入图片描述
执行的SQL查询语句
在这里插入图片描述

最终SQL注入成功,返回数据中带有用户名SA
在这里插入图片描述

参考网址

http://www.360doc.com/content/21/1112/17/67871819_1003878299.shtml
https://mp.weixin.qq.com/s/91MWSDYkom2Z8EVYSY37Qw
https://blog.csdn.net/caiqiiqi/article/details/107857173

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值