首页/新闻资讯/正文详情

前端校验登录态,等于没校验——一次应急广播终端高危漏洞的发现与报送

发布时间:2026/11/4 12:14:06 来源:云帆数科 栏目:资讯中心
前端校验登录态,等于没校验——一次应急广播终端高危漏洞的发现与报送
前端校验登录态等于没校验——一次应急广播终端高危漏洞的发现与报送本文记录一次已获 CNNVD 收录的高危漏洞编号CNNVD-2026-06394172的发现与报送过程。文中涉及的内网地址、设备编码、账号名均已隐去也不提供可用于复现的操作步骤只讨论缺陷构成和防护思路。一、从一次常规巡检说起我在基层单位负责网络安全工作日常巡检里有一项固定内容对业务终端的 Web 接口做鉴权一致性测试——同一个设备上逐个接口试一遍不带凭据能不能访问。这次的问题出在一台应急广播终端的调试维护页面上。这类终端通常有面向运维的调试功能用来看运行状态、查日志、做一些维护操作。按设计这类页面只应该给运维人员用访问前必须经过身份验证。实测结果是不登录直接就能打开。没有跳转没有 401页面功能完整可用。不只是页面能看见这么简单。这个调试页面上有命令行输入框还有一排开发者级的功能按钮——模拟注册、自动播放、工厂测试、煲机测试、U 盘测试、施工结束。这些不是给日常运维用的是设备出厂调试和产线测试留下的接口。到这一步已经是一个明确的未授权访问问题了。但往下看代码事情比忘了加鉴权严重。图 3不携带任何凭据直接取回调试页面的完整 HTML请求地址已隐去二、三层缺陷叠在一起2.1 第一层调试页面没有访问控制调试页面本身不做任何身份验证只要网络能到设备的 80 端口一个 GET 请求就能把整个页面拿回来。这属于最常见的缺陷类型单独出现也不算罕见——很多嵌入式设备的调试接口都是内网可用所以没做的状态。但放在应急广播终端上性质不一样这类设备部署在县级平台承担灾害预警和应急指挥的播发任务通常还和播出、调度系统在同一个内网里。2.2 第二层登录判断写在了浏览器里更关键的问题在这个页面判断当前用户是否已登录的方式。设备的前端代码里权限判断是这么写的账号名已隐去varuserNamelocalStorage.getItem(username);if(userName████████){$(a.debug).show();}else{$(a.debug).hide();}这段代码做的事情严格说不是校验权限而是根据浏览器里存的一个字符串决定要不要显示调试菜单。localStorage是用户自己浏览器里的存储攻击者想写什么就写什么。身份判断的数据源放在客户端等于把你是不是管理员这个问题交给被检查方自己回答。对比一下两张图就清楚了。下面这张是管理员账号正常登录后的界面——侧边栏里没有调试这一项图 1管理员正常登录侧边栏从基本信息到密码管理没有调试入口而在浏览器控制台里改掉那个本地存储的值、刷新页面之后同样的账号侧边栏底部多出了调试一项点进去就是前面那个带命令行和工厂测试的页面图 2只改了本地存储的一个值调试菜单就出现了——服务端没有做任何二次验证正确的做法是服务端会话校验凭据换来的 session/token 由服务端验证前端只负责携带不负责判断。这个设备把判断权整个交给了浏览器服务端对后续请求也没有做二次验证所以前端那行if是唯一一道门而且这道门装在门外。2.3 第三层固件里内置了硬编码账号前端代码里还发现固件中预置了一个超级管理员的用户名直接以字符串形式写在 JS 文件里并且权限判断就是拿用户名字符串做等值比较。这个账号不随设备交付配置也改不掉属于固件级内置——所有同版本固件的设备共享同一个名字。固件级缺陷意味着不是某一台设备的配置疏忽而是同系列设备的共性问题。改配置、换密码都解决不了只能等厂商出固件更新。三层叠加的效果调试页面本来就没有访问控制登录判断又能被客户端数据绕过再叠加一个所有设备通用的内置账号——认证体系在调试功能这条路径上实际上是失效的。三、为什么这类问题值得单独拿出来说我之前写过一篇从信任边界视角看广电嵌入式终端的文章这次的问题可以放进同一个框架里理解设备的信任边界画在了错误的位置。开发者默认能打开调试页面的浏览器就是可信的于是把身份判断放在了浏览器端。但浏览器是攻击者完全可控的环境——前端代码、本地存储、请求内容全都可以随意构造。这不是这个厂商独有的问题。在嵌入式设备上前端做鉴权、前端存凭据、前端判断权限的写法相当常见原因是开发人员往往按 Web 应用的思路写嵌入式管理界面而这两者的威胁模型完全不同Web 应用的前端代码是公开的但服务端可信嵌入式设备的前端和服务端都在攻击者触手可及的范围内前端做的一切校验都只能算 UI 提示不是安全机制。这里还有一个容易混淆的点半年前我在同一系列设备上报过另一条漏洞问题在服务端 API 不校验 token走的是接口这条路。这次的问题在调试页面和前端权限判断这条路上——两个漏洞在同一个产品里但根因不同、入口不同修好一个不影响另一个。做过一次加固不等于这条路径就安全了这也是排查嵌入式设备时容易漏掉的地方。四、报送与收录这个漏洞按程序报送 CNNVD国家信息安全漏洞库提交了验证过程、代码分析和影响说明。CNNVD 完成审核后正式收录编号CNNVD-2026-06394172评定等级为高危。从经验上讲CNNVD 对这类漏洞的接受度比 CNVD 高——它更看重技术真实性前端代码审计加上验证过程就足够支撑不强制要求公网案例。这一点我在之前的流程复盘文章里详细写过两类平台的证据偏好差异很大选对渠道能省很多时间。五、给同类单位的三条建议如果你的单位也部署着这类出厂即联网的行业终端有三件事值得做梳理维护接口清单。把设备上所有面向运维的页面、接口、端口列出来逐个测一遍不登录能不能访问。这活不复杂一个下午能扫完一个网段。把前端校验当作没校验。审查设备 Web 界面时打开浏览器开发者工具看一眼登录判断是服务端返回的状态还是前端读本地存储下的结论。后者直接按未授权处理。固件内置账号要进台账。交付验收时向厂商索要账号清单确认哪些是可改的、哪些是内置的。内置账号改不了就要靠网络隔离来补偿——这类设备不应该出现在任何能被办公网直接访问的位置。六、小结这个漏洞没有用到任何高级技术三个缺陷单独看都不新鲜叠在一起却让整条认证链失效。嵌入式设备的安全问题大多是这个模式不是单点多强而是几处大家都这么写的习惯凑到了一起。漏洞已按程序完成报送与收录厂商通报由平台负责。作为发现者能做的是把发现过程和防护思路写出来让更多部署同类设备的单位少踩这个坑。作者刘晓伟基层融媒体中心网络安全工程师。CSDN 博客长期更新 AI 技术学习、漏洞分析与挖掘、自动化运维方向内容。

相关推荐

Zotero侧边栏AI插件
Zotero侧边栏AI插件

Zotero侧边栏AI插件 在使用Zotero阅读文献时,遇到不懂的内容经常需要打开AI软件或者网页,感觉很不方便,Zotero社区现有的AI阅读插件通常是浮在文献上面的,往往会遮挡文献,因此借助ChatGPT开发了这款侧边栏AI对话插件&a… · 2026/11/4 12:14:05

用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么
用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么

本文根据 AntsData 原文整理改写,重点保留数据口径、分析方法和可复现的 API 管线,弱化产品宣传表达。文中的数据来自原文所述的一次实际运行,更新时间为 2026 年 10 月 29 日。一、问题:产品改版不应该只靠“感觉” 做机械键盘时… · 2026/11/4 12:14:05

大一自学网安第13天
大一自学网安第13天

今天轮到html区块的学习。块元素块级元素通常从新行开始,并占据整行宽度,因此在页面上会呈现一块独立的内容块。 可以包含其他块级元素和行内元素。常见块元素:<div><p><h1&#xff… · 2026/11/4 12:13:04

零基础入门PyTorch深度学习:从环境配置到第一个神经网络实战
零基础入门PyTorch深度学习:从环境配置到第一个神经网络实战

简介:这份PDF面向深度学习初学者与PyTorch入门者,围绕“从基础到实践”的学习路径,系统讲解Numpy基础、Tensor与Autograd、神经网络工具箱nn、数据处理与可视化工具,并延伸至机器学习基础、卷积网络、循环网络与生成式模型等核心内… · 2026/11/4 13:01:43

SolidWorks Simulation动力学进阶:模态、谐响应与瞬态仿真
SolidWorks Simulation动力学进阶:模态、谐响应与瞬态仿真

仿真这件事,做静力学的人多,能把动力学跑通、并且跑出来的数敢拿去支撑设计决策的人少。SolidWorks Simulation 这套工具的门槛其实不高,点几下就能出彩图,难的是知道什么时候该用哪个算例类型、参数凭什么这么填、结果为什么和实… · 2026/11/4 13:01:43

30岁测试工程师转型指南:技术纵深与管理路径
30岁测试工程师转型指南:技术纵深与管理路径

1. 职业现状与转型必要性 30岁对于软件测试从业者而言往往是个关键分水岭。在这个阶段,许多测试工程师开始面临职业发展的瓶颈期——重复性的功能测试工作逐渐失去挑战性,而新兴技术栈又带来知识更新的压力。根据行业调研数据,约67%的测试人员… · 2026/11/4 13:01:43

M3U8分片下载与油猴脚本实战:HLS抓取、合并与排错
M3U8分片下载与油猴脚本实战:HLS抓取、合并与排错

前段时间帮一个做在线课程运维的朋友处理了个挺典型的问题:他自己录的直播回放挂在自家页面上,学员抱怨"想下载到本地反复看,右键另存为存不下来",他自己也试了半天,另存出来的只有一个几 KB 的小文件。打开一看,里面全是文本,列着一堆.ts结尾的地址——这就是 M3U8 … · 2026/11/4 13:01:43

LiteDB.Studio 实战:嵌入式数据库可视化查询与排障指南
LiteDB.Studio 实战:嵌入式数据库可视化查询与排障指南

1. 先把问题看清楚:LiteDB.Studio 到底补上了哪块缺口 LiteDB.Studio 是一个免费开源的 LiteDB 数据库 GUI 管理工具,用来直接打开 .db 单文件、浏览集合、跑查询、改文档、建索引。我第一次接触它,是因为一个离线桌面项目用了 LiteDB 存配置… · 2026/11/4 13:01:43

wxappUnpacker能力边界详解:能解什么、不能解什么
wxappUnpacker能力边界详解:能解什么、不能解什么

简介:这是一套面向小程序开发者与安全研究人员的微信小程序反编译工具集wxappUnpacker,专用于逆向解析小程序主包与分包,解决封闭环境下无法查看原始业务逻辑、组件结构及配置机制的痛点,适用于代码学习、性能分析、安全审计与问题… · 2026/11/4 13:00:42

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码