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. 图片服务器的url hash架构
  2. 数据库语法_圣诞快乐:用GaussDB T 绘制一颗圣诞树,兼论高斯数据库语法兼容...
  3. 2009年4月计算机网络原理,全国2009年4月高等教育自学考试计算机网络原理
  4. win7装mysql一直未响应_求助啊 WIN7下安装mysql出问题 老是说未响应~!!
  5. 面试官最常问的问题总结(一)
  6. php操作memcache缓存基本方法
  7. iperf基本使用方式
  8. ttk python_python GUI ttk库 -- Apple的学习笔记
  9. 怎样辨别光模块的真假?
  10. 多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
  11. 途家、木鸟、美团……民宿暑期战事将起
  12. 【源码】用主应力线(应力可视化)研究二维应力场
  13. 世界上唯一公平的事情就是每个人都会死。
  14. 实施演示ppt的注意事项
  15. 正则表达式,Math类,System类,日期日历对象
  16. 个人微信api接口调用-给微信好友或群聊发消息
  17. JAVA-基础 -异常
  18. PCIE2PCI104载板转接卡
  19. 国产化服务器挂载硬盘,使用国产免费的软件WinMount将VMDK(VMWare)挂载为虚拟磁盘...
  20. photoshop中为什么会出现不能使用文字工具,因为暂存盘已满?

热门文章

  1. 公共管理学试题及参考答案
  2. Ulipad python中input无法结束
  3. 《咬文嚼字》公布今年国人十大常犯语文差错
  4. Uploadify IE出现了SCRIPT5007 缺少对象
  5. 软件设计师考试 | 第五章 软件工程基础知识 | 软件质量
  6. 一个案例告诉你,GIS技术与数据可视化结合能帮助我们什么?
  7. 销售如何用套路运作一个项目?项目成功经验分享
  8. 汕头市队赛 yyl杯1 T1
  9. Ubuntu安装LAMP
  10. 关于重置weblogic账户密码