CVE-2019-25243FaceSentry 6.4.8存在一处严重的认证后远程命令注入漏洞。该漏洞位于Web管理界面的pingTest.php和tcpPortTest.php脚本中。由于这些脚本对用户输入的'strInIP'和'strInPort'参数缺乏有效的输入过滤和验证,攻击者可以通过在参数中注入任意Shell命令来实现远程代码执行。由于目标设备通常以root权限运行Web服务,成功利用此漏洞的攻击者可以完全控制目标系统,执行任意系统命令、安装后门、窃取敏感数据或将其作为进一步攻击内网的跳板。此漏洞需要攻击者具备低权限认证账号,但无需用户交互即可完成攻击,CVSS评分高达8.8分,属于高危漏洞。
该漏洞的根本原因在于PHP脚本对用户可控输入的信任。在pingTest.php和tcpPortTest.php中,程序直接使用HTTP请求中的'strInIP'和'strInPort'参数构建系统命令,而未进行任何命令注入防护。攻击者可通过在参数值中插入分号、管道符等Shell元字符来终结当前命令并注入恶意命令。例如,在'strInIP'参数中提交'127.0.0.1;whoami'即可执行额外的whoami命令。由于Web服务通常以root或高权限用户运行,注入的命令也以相同权限执行。攻击者常利用此漏洞通过反弹Shell、下载并执行恶意脚本等方式建立持久化访问。典型的利用方式包括:写入SSH公钥、添加Cron任务、下载植入后门程序等。