大华ICC智能物联综合管理平台是面向智慧物联场景的重要基础设施,它通过模块化设计实现了各类技术组件的灵活集成。这个平台在停车场管理、园区管控等领域有着广泛应用,但最近曝出的readpic接口任意文件读取漏洞却给系统安全带来了严峻挑战。
这个漏洞的本质在于未对用户输入进行充分校验。想象一下,你家的防盗门如果忘记上锁,任何人都可以随意进出——readpic接口的问题就类似这种情况。攻击者通过构造特殊的fileUrl参数,就能像翻阅自家相册一样读取服务器上的任意文件,包括敏感的/etc/passwd等系统文件。
在实际测试中,我们发现漏洞利用出奇地简单。只需要发送一个精心构造的HTTP请求,就能获取到本不该暴露的系统信息。这种漏洞的危害性往往被低估,因为它不像远程代码执行那样直接,但造成的后果同样严重。通过这个漏洞,攻击者可以绘制出完整的服务器地图,为后续攻击铺平道路。
readpic接口原本的设计用途是读取图片文件供客户端展示,但其实现存在严重的安全缺陷。核心问题出在fileUrl参数的处理逻辑上:开发人员假设这个参数只会接收合法的图片路径,却没有对输入内容进行任何白名单校验或路径规范化处理。
在Java或类似的后端实现中,代码可能类似于:
java复制@GetMapping("/readPic")
public ResponseEntity<byte[]> readPic(@RequestParam String fileUrl) {
File file = new File(fileUrl);
// 直接读取文件内容并返回
}
这段代码犯了一个典型错误:盲目信任用户输入。当攻击者传入"file:/etc/passwd"这样的参数时,系统会忠实地返回目标文件内容。正确的做法应该是对fileUrl进行多重校验:
更深层次的问题在于平台的默认安全配置。现代操作系统都提供完善的权限控制机制,但很多物联网平台为了部署方便,往往以过高权限运行服务。我们发现大华ICC平台的web服务进程通常以root或admin权限运行,这使得通过readpic接口读取的文件范围大大扩展。
在实际环境中,攻击者不仅能获取/etc/passwd,还可能读取:
这些敏感信息的泄露会极大降低系统整体安全性,相当于把房子的结构图和钥匙都交给了陌生人。
通过FOFA等网络空间测绘引擎,我们使用特征"body='客户端会小于800'"进行搜索,发现全球范围内暴露在公网的大华ICC平台实例数量相当可观。这些系统主要分布在:
值得注意的是,很多实例部署在内网但通过NAT暴露了管理接口,这使得漏洞的影响范围进一步扩大。通过测绘数据交叉分析,我们估计受影响系统以中国、东南亚、中东地区分布最为集中。
假设攻击者利用这个漏洞,完整的攻击链条可能包括:
在物联网环境中,这种信息泄露的危害会被放大。我们曾在一个测试案例中发现,通过读取/opt/dahua/conf/camera.conf文件,可以直接获取到接入的所有摄像头RTSP流地址和认证信息。
大华官方后续发布的补丁主要做了以下改进:
升级到最新版本是最彻底的解决方案。对于无法立即升级的系统,可以通过以下临时缓解措施:
nginx复制location /evo-apigw/evo-cirs/file/readPic {
if ($args ~* "fileUrl=file:/etc/") {
return 403;
}
}
除了修补这个特定漏洞外,我们建议采取以下纵深防御措施:
在物联网平台的安全设计中,特别需要注意"信任边界"的划分。任何来自不可信源的输入都应视为潜在威胁,必须经过严格的验证和过滤。