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多版本注入漏洞分析相关推荐

  1. ECSHOP全版本注入漏洞分析

    ECSHOP全版本注入漏洞分析 2014-04-03 10:34:52|  分类: Pentest-skills |举报 |字号 订阅 下载LOFTER 我的照片书  | 初学PHP,看了两天语法,找 ...

  2. 网络***实战:老Y文章管理系统V2.2注入漏洞分析与利用

    网络***实战:老Y文章管理系统V2.2注入漏洞分析与利用 安天365团队     同学说让我帮忙架设一个网站,同时要保证整个网站的安全.自己开发,开玩笑,工作量巨大,还是通过网络,在别人的基础上进行 ...

  3. 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...

    刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序, 找到get_client_ip()函数 ...

  4. JDBC的SQL注入漏洞分析和解决

    SQL注入漏洞分析 SQL注入漏洞解决 需要采用PreparedStatement对象解决SQL注入漏洞.这个对象将SQL预先进行编译,使用?作为占位符.?所代表内容是SQL所固定.再次传入变量(包含 ...

  5. recommend.php sql注入漏洞,Espcms通杀SQL注入漏洞分析(附EXP)

    漏洞:Espcms 通杀 SQL注入漏洞分析附EXP 漏洞作者:Seay博客:www.cnseay.com 官网介绍: 易思ESPCMS企业网站管理系统基于LAMP开发构建的企业网站管理系统,它具有操 ...

  6. Espcms通杀SQL注入漏洞分析(附EXP)

    漏洞:Espcms 通杀 SQL注入漏洞分析附EXP 漏洞作者:Seay 博客:www.cnseay.com 官网介绍: 易思ESPCMS企业网站管理系统基于LAMP开发构建的企业网站管理系统,它具有 ...

  7. Joomla 3.4.3版本 SQL注入漏洞分析

    0x00 漏洞分析 漏洞触发的代码位于:/administrator/components/com_contenthistory/models/history.php,getListQuery()函数 ...

  8. wordpress漏洞_多个WordPress插件SQL注入漏洞分析

    背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...

  9. Metinfo 5.3.17 前台SQL注入漏洞分析及实验

    2017年08月07日  漏洞分析                作者:phith0n@长亭科技 原文地址:https://paper.seebug.org/371/ Metinfo 8月1日升级了版 ...

最新文章

  1. 企业网络推广——企业网络推广专员提高网站更新讲策略
  2. fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...
  3. [Golang]计算一个文件的MD5值
  4. Android 自定义阴影,自定义颜色样式
  5. 培训课程第三期签到和意见发表
  6. 分布式、微服务、云架构
  7. php的图像处理有哪些实际作用,PHP_一个经典实用的PHP图像处理类分享,本图像处理类可以完成对图片 - phpStudy...
  8. 2021大同高考成绩查询,大同高考分数查询(查询方法+入口)
  9. Firefox和Chrome浏览器导出书签
  10. Vue学习笔记(尚硅谷天禹老师)
  11. 清华上交等发表Nature子刊!分片线性神经网络最新综述!
  12. 【广告类型】富媒体 Rich Media Ad 介绍
  13. 带你重新认识一下应用层协议
  14. hud 4415 Assassin’s Creed
  15. CANOPEN 协议 命令字
  16. 爆款制作获1200w播放,B站UP主+品牌如何迈入2023
  17. 小程序怎么弄?小程序开发多少钱?
  18. html src=true,embed属性变true
  19. C# Socket 长连接设置Keepalive
  20. 当window.opener无法调用时的原因与解决方案

热门文章

  1. 利用OpenCV对图像倾斜矩形目标区域进行固定大小裁剪
  2. webrtc QOS方法二(FEC)
  3. 新电脑配置开发所需(一)jdk配置
  4. Python-serial 模块使用方法
  5. 无锡:智慧城市发展水平全国第一
  6. Xshell如何设置鼠标右键粘贴
  7. 机电行业如何进行信息化建设
  8. 空间计量软件代码资源集锦(Matlab/R/Python/SAS/Stata)
  9. 基于layui + springboot +shiro+mybatisPlus仓库管理系统
  10. SQL内连接——使用场景记录