请注意!Zabbix高危SQL注入漏洞分析

0x01 漏洞概述

zabbix是一个开源的企业级性能监控解决方案。近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,***者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限。 但是无需登录注入这里有个前提,就是zabbix开启了guest权限。而在zabbix中,guest的默认密码为空。需要有这个条件的支持才可以进行无权限注入。

详情:《漏洞预警:Zabbix高危SQL注入漏洞,可获取系统权限》

0x02 影响程度

  • ***成本:低

  • 危害程度:高

  • 是否登陆:不需要

  • 影响版本:2.2.x,3.0.0-3.0.3

0x03 漏洞测试

在zabbix的地址后面添加:

  • 利用方式一

d3hfZm10PXBuZw==

如果出现下列代码则证明漏洞存在

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

  • 利用方式二

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

如果出现下列代码则证明漏洞存在

d3hfZm10PXBuZw==

0x04 实战测试

测试的一个Japan站

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

可获得最高权限

0x05 代码分析

zabbix 2.2.14

  • 首先从poc中的jsrpc.php文件入手,找到profileIdx2参数

d3hfZm10PXBuZw==

在看这段代码的时候各种跑偏,一度追着

d3hfZm10PXBuZw==

这几句代码死磕,看到zabbix-2.2.14/frontends/php/include/classes/screens/CScreenBuilder.php,在public static function getScreen(array $options = array())函数中没有找到可以造成漏洞的交互点,太菜了!!!

然后去请教表哥,表哥提示问题出现在flush中
根据表哥的提示,在page_footer.php中发现CProfile类的flush方法

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

在profiles.inc.php中找到了flush函数

d3hfZm10PXBuZw==

参数传入下面的insertDB函数,从而导致了注入的产生

d3hfZm10PXBuZw==

0x06 漏洞修复

  • 版本升级

  • 打补丁

  • 关闭guest

0x07 后记

这里还有好多东西没有搞懂,毕竟太菜了

注:部分漏洞信息收集自网络

作者:secange

来源:http://www.secange.com/2017/10/zabbix%E9%AB%98%E5%8D%B1sql%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值