_______ ________ ___ ____ ___ __ __ __ __ ___ ________ _____
/ ____/ | / / ____/ |__ \ / __ \__ \/ // / / // /|__ \|__ /__ \/__ /
/ / | | / / __/________/ // / / /_/ / // /_______/ // /___/ / /_ <__/ / / /
/ /___ | |/ / /__/_____/ __// /_/ / __/__ __/_____/__ __/ __/___/ / __/ / /
\____/ |___/_____/ /____/\____/____/ /_/ /_/ /____/____/____/ /_/
NSFOCUS CERT 检测到 Zabbix 发布了安全公告,并修复了 Zabbix 服务器的 SQL 注入漏洞(CVE-2024-42327)。由于 addRelatedObjects 函数中 CUser 类存在 SQLi 漏洞,具有默认用户权限或 API 访问权限的攻击者可以调用 CUser.get 函数。这可能导致未经授权访问敏感信息或执行任意 SQL 语句。CVSS 评分为 9.9。
该 PoC 利用此 SQL 注入漏洞,对于基于时间的 SQL 注入方法,我们需要从数据库中提取 sessions 表,以确定 Admin 用户是否已登录。该脚本提供了一个多线程脚本,以加快提取 admin 会话的速度,便于进一步利用。借助 admin 用户的 API 令牌,我们继续创建一个 item,然后可以触发该 item。随后,我们通过发送 payload 获得一个反向 shell。
总而言之,该工具利用 Zabbix API 通过基于时间的 SQL 注入提取 admin 会话 ID(admin_session),然后使用该 ID 向目标系统发送反向 shell 命令。首先,脚本接收用户的凭据,向 Zabbix API 发送身份验证请求并获取 auth_token。然后,它利用 SQL 注入提取 admin_session ID。提取到的 admin_session ID 用于通过向 Zabbix API 发送 host.get 请求来获取主机和接口 ID。最后,使用获取到的主机和接口 ID 发送包含反向 shell 命令的 item.create 请求。通过这种方式,在目标服务器上打开一个反向 shell 并建立连接。
