安全狗:zabbix多版本注入漏洞分析
2019独角兽企业重金招聘Python工程师标准>>>
Seclists上爆出zabbix多版本无需登陆的注入,然后国内就爆炸了。开头先说一下,安全狗能够拦截这个注入攻击。
来分析一下吧,zabbix版本为2.x
攻击payload如下:
jsrpc.php?type=9&method=screen.get&profileIdx=web.item.graph&profileIdx2=1%20and%20(select%201%20from%20(select%20count(*),concat(user(),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)&stime=1&resourcetype=1
通过页面的语句报错定位代码位置在\includes\profiles.inc.php中第174行
代码中将value数组通过implode函数操作并组装成sql语句。通过报错信息中可以发现触发点在idx2参数中。(在最新版本中的zabbix已经使用zbx_dbstr对idx2变量进行单引号保护与转义。)
向上查找发现flush函数对insertDB进行了调用。
代码中通过判断私有变量是否为空,不为空则遍历变量并传入insertDB函数中,可以看到在遍历时并没有做任何过滤的操作。
接着在代码中搜索何处对CProfile::flush()函数进行调用,在\includes\page_footer.php中第46行调用了该函数,最后在jsrpc.php中的最后一行引入page_footer.php。
至此,整个函数的调用流程分析完成,接下来通过payload开始分析profileIdx2参数变量的组装与传递流程。
在jsrpc.php中178-219行,method=screen.get中
代码前半部将$_REQUEST获取的变量进行组装,然后传入CScreenBuilder::getScreen()中。
紧接着找到\includes\classes\screens\CScreenBuilder.php,getScreen()函数被定义在169-268行。
第197行开始判断传入的resourcetype参数并实例化对应的类,对应的类继承于CScreenBase类,并调用父类的构造函数。
在CScreenBase->__construct中,可以看到函数对变量赋值完成后传入了$this->calculateTime方法中。
代码中可以看到除了判断传入的变量外,函数在未过滤变量的情况下传入了CProfile::update()中。
代码在\includes\profiles.inc.php中136-172行
函数直接将传入的变量传入到私有变量,用于后面CProfile::flush()的调用(文章开头部分),最终导致注入的发生。
修复方案:
Zabbix 2.x找到\includes\profiles.inc.php文件,Zabbix 3.x找到\include\classes\user\CProfile.php,将insertDB函数中的
'idx2' => $idx2改成'idx2' =>zbx_dbstr($idx2)即可。
Reference:
http://seclists.org/fulldisclosure/2016/Aug/82
转载于:https://my.oschina.net/safedog/blog/737848
安全狗:zabbix多版本注入漏洞分析相关推荐
- ECSHOP全版本注入漏洞分析
ECSHOP全版本注入漏洞分析 2014-04-03 10:34:52| 分类: Pentest-skills |举报 |字号 订阅 下载LOFTER 我的照片书 | 初学PHP,看了两天语法,找 ...
- 网络***实战:老Y文章管理系统V2.2注入漏洞分析与利用
网络***实战:老Y文章管理系统V2.2注入漏洞分析与利用 安天365团队 同学说让我帮忙架设一个网站,同时要保证整个网站的安全.自己开发,开玩笑,工作量巨大,还是通过网络,在别人的基础上进行 ...
- 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...
刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序, 找到get_client_ip()函数 ...
- JDBC的SQL注入漏洞分析和解决
SQL注入漏洞分析 SQL注入漏洞解决 需要采用PreparedStatement对象解决SQL注入漏洞.这个对象将SQL预先进行编译,使用?作为占位符.?所代表内容是SQL所固定.再次传入变量(包含 ...
- recommend.php sql注入漏洞,Espcms通杀SQL注入漏洞分析(附EXP)
漏洞:Espcms 通杀 SQL注入漏洞分析附EXP 漏洞作者:Seay博客:www.cnseay.com 官网介绍: 易思ESPCMS企业网站管理系统基于LAMP开发构建的企业网站管理系统,它具有操 ...
- Espcms通杀SQL注入漏洞分析(附EXP)
漏洞:Espcms 通杀 SQL注入漏洞分析附EXP 漏洞作者:Seay 博客:www.cnseay.com 官网介绍: 易思ESPCMS企业网站管理系统基于LAMP开发构建的企业网站管理系统,它具有 ...
- Joomla 3.4.3版本 SQL注入漏洞分析
0x00 漏洞分析 漏洞触发的代码位于:/administrator/components/com_contenthistory/models/history.php,getListQuery()函数 ...
- wordpress漏洞_多个WordPress插件SQL注入漏洞分析
背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...
- Metinfo 5.3.17 前台SQL注入漏洞分析及实验
2017年08月07日 漏洞分析 作者:phith0n@长亭科技 原文地址:https://paper.seebug.org/371/ Metinfo 8月1日升级了版 ...
最新文章
- 企业网络推广——企业网络推广专员提高网站更新讲策略
- fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...
- [Golang]计算一个文件的MD5值
- Android 自定义阴影,自定义颜色样式
- 培训课程第三期签到和意见发表
- 分布式、微服务、云架构
- php的图像处理有哪些实际作用,PHP_一个经典实用的PHP图像处理类分享,本图像处理类可以完成对图片 - phpStudy...
- 2021大同高考成绩查询,大同高考分数查询(查询方法+入口)
- Firefox和Chrome浏览器导出书签
- Vue学习笔记(尚硅谷天禹老师)
- 清华上交等发表Nature子刊!分片线性神经网络最新综述!
- 【广告类型】富媒体 Rich Media Ad 介绍
- 带你重新认识一下应用层协议
- hud 4415 Assassin’s Creed
- CANOPEN 协议 命令字
- 爆款制作获1200w播放,B站UP主+品牌如何迈入2023
- 小程序怎么弄?小程序开发多少钱?
- html src=true,embed属性变true
- C# Socket 长连接设置Keepalive
- 当window.opener无法调用时的原因与解决方案