Zabbix latest.php Insert注入分析与实践

admin 2022年5月11日05:45:43评论24 views字数 1422阅读4分44秒阅读模式

概要



因为未能过滤掉latest.php页面中toggle_ids数组的输入,导致Zabbix 2.2.x,3.0.x 远程SQL注入


源码分析



下载了两份官方代码对比,左为3.0.4(已修复的版本),右为3.0.3


zabbix-3.0.3rc1frontendsphpjsrpc.php

Zabbix latest.php Insert注入分析与实践

Zabbix latest.php Insert注入分析与实践


可见新版本中删除的代码即为漏洞触发部分。



Zabbix latest.php Insert注入分析与实践


$_REQUEST获取的数据未经过滤,直接带入CProfile::update() 暂存更新的数据。


zabbix-3.0.3rc1/frontends/php/include/classes/user/CProfile.php


Zabbix latest.php Insert注入分析与实践


latest.php末尾包含page_footer.php(line 829)


Zabbix latest.php Insert注入分析与实践


跟入page_footer.php(line 38)


Zabbix latest.php Insert注入分析与实践


继续跟入CProfile::flush()


Zabbix latest.php Insert注入分析与实践

继续跟入self::insertDB()


Zabbix latest.php Insert注入分析与实践


跟入DBexecute()
php/include/db.inc.php (line 499)


Zabbix latest.php Insert注入分析与实践

最终在mysqli_query()执行。



实践



参考漏洞作者给出的Payload


Zabbix latest.php Insert注入分析与实践

直接访问latest.php 会返回一个You must login to view this page. 漏洞作者也指出登录后才可以(包括guest账号)。


懒得搭环境了,zabbix默认口令为admin/zabbix,正好之前写过这个PoC,先用它跑出几台机器试试。


https://github.com/Xyntax/POC-T/blob/master/script/zabbix-weakpass.py


python POC-T.py -m zabbix-weakpass -T --api --dork "zabbix country:cn" -t 30


结果还不少:

Zabbix latest.php Insert注入分析与实践


拿其中一个站,登录之后访问:

http://58.xx.xx.xx:82//latest.php?output=ajax&sid=17892f8c4912dfcd&favobj=toggle&toggle_open_state=1&toggle_ids[]=1%^&*%22%27()-*#


这里又报无权限,看了下源码,将sid参数值设置为登录后sessionid的后16位。

Zabbix latest.php Insert注入分析与实践

再次提交,回显看到MySQL的报错,证明漏洞存在。

Zabbix latest.php Insert注入分析与实践



自动化验证Tips



目前各平台流出的PoC问题:不清楚后端用的什么数据库,难以获得可信度大的回显(如 md5(0x11)

源码中显示支持这些
* oracle
* mysql
* db2
* postgresql
* sqlite3

源码对于不同数据库报错格式有两种,可用于PoC验证的特征字段:

  • error('Error in query ['.$query.'] ['.mysqli_error($DB['DB']).']');

  • error('SQL error ['.$query.'] in ['.$e.']');

目前可以用作检验标准的特征字段是:

  • table class="msgerr"

  • li class="error"

  • Error in query [ or SQL error [

可以多实践一些版本增加PoC的容错性。


刷洞的话不如直接用jsrpc.php的PoC:
https://github.com/Xyntax/POC-T/blob/master/script/zabbix-jsrpc-sqli.py


如有排版问题请点击阅读原文

原文始发于微信公众号(乐枕迭代日志):Zabbix latest.php Insert注入分析与实践

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月11日05:45:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Zabbix latest.php Insert注入分析与实践http://cn-sec.com/archives/943621.html

发表评论

匿名网友 填写信息