Mini_httpd组件可能漏洞影响257万IOT设备

Track-SSG   ·   发表于 2018-11-02 10:33:57   ·   漏洞文章

2018年10月30日,白帽汇安全研究院监测到网络上出现了应用于大量IOT设备的Mini_httpd组件爆出任意文件读取漏洞(CVE-2018-18778),可能影响全球两百多万设备。该漏洞是由于当服务器上的Mini_httpd组件开启vhost模式时,由于没有对http头数据进行安全过滤,导致外网攻击者可发送HOST头为空的的HTTP数据包,触发漏洞,引起任意文件读取。

Mini_httpd是一个微型的Http服务器,在占用系统资源较小的情况下可以保持一定程度的性能(约为Apache的90%),因此广泛被各类IOT(路由器,交换器,摄像头等)作为嵌入式服务器。而包括华为,zyxel,海康威视,树莓派等在内的厂商的旗下设备都曾采用Mini_httpd组件。

概况

Mini_httpd是ACME Labs开发的软件,支持基本的HTTP协议的GET、HEAD、POST方法,也支持CGI和基本的验证功能。是相对比较适合学习使用,其简单实现了一个webserver的功能,因此适合作为个人网站搭建和各类物理设备的管理设置接口,不适宜大型的Web商业场景。

目前FOFA系统最新数据(一年内数据)显示全球范围内共有2579771个Mini_httpd的设备。中国台湾地区使用数量最多,共有423951台,越南第二,共有343538台,哥伦比亚第三,共有320493台,印度第四,共有163121台,巴基斯坦第五,共有95424台。需要注意的是,还有很多处于内网的IOT设备网站并不能统计的到。

全球范围含有Mini_httpd组件的IOT设备分布情况(仅为分布情况,非漏洞影响情况)

中国大陆地区中广东省使用用数量最多,共有15911;北京市第二,共有5772台,辽宁省第三,共有4222台,江苏省市第四,共有2387台,江西省第五,共有1551台。

中国大陆地区含有Mini_httpd组件的IOT设备设备分布情况(仅为分布情况,非漏洞影响情况)

危害等级

高危

漏洞原理

漏洞原因在于Mini_httpd中虚拟主机模式(vhost)有缺陷。

虚拟主机模式并不是默认开启,需要在命令行利用-v参数开启(mini_httpd -v -C mini_httpd.conf)

当虚拟主机模式开启后,网络请求文件的绝对路径为:Host头+url。因此攻击者只要在web端口访问服务器时,设置Host头为空,等同于通知服务器需要某绝对物理路径文件。

只有在vhost值不为0的情况下,才会调用virtual_file函数,进行拼接。virtual_file函数中的snprintf函数拼接host+url。

接着,会调用do_file函数,该函数功能是记录日志,并读取Host拼接后的文件输出给用户(客户端或web端)。此时,攻击者就可以直接看到返回的敏感文件数据。

do_file函数中的open函数根据绝对路径读取文件

最后的文件读取效果如下图所示。

直接读取/etc/passwd文件

而从官方发布的补丁来看,可以发现是由于安全过滤条件的缺失导致的漏洞。

可以看到补丁新添加了过滤条件,对0字节进行了过滤

漏洞影响目前漏洞影响版本号包括:

Mini_httpd 1.30版本之前

影响范围

暂无

漏洞POC

目前FOFA客户端平台已经更新CVE-2018-18778检测POC。

CVE-2018-18778 POC截图

CVE编号

CVE-2018-18778

修复建议

1、在打补丁前暂时下线设备。

2、安装最新的版本,新版本官网下载地址:http://www.acme.com/software/mini_httpd/

参考

[1] https://acme.com/software/mini_httpd/

[2] http://blog.topsec.com.cn/ad_lab/cve-2018-18778%e5%8e%9f%e5%88%9b%e6%bc%8f%e6%b4%9e%e5%ae%89%e5%85%a8%e9%80%9a%e5%91%8a/




打赏我,让我更有动力~

0 条回复   |  直到 2018-11-2 | 1148 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.