Apache HTTPD 多后缀解析漏洞
漏洞描述
在对漏洞介绍之前我们先对httpd.conf文件进行一个介绍,httpd.conf是apache的一个总配置文件,在该文件中,有很多对apache解析网页参数的设置,我们挑三个来介绍
- AddType:为特定后缀的文件指定MIME类型
- AddLanguage:一个HTML文档可以同时具备多个语言的版本,如对于file1.html文档可以具备file1.html.en、file1.html.cn等不同的版本,每个语言后缀可以使用AddLanguage进行定义;这样服务器可以针对不同国家的客户,通过与浏览器进行协商,发送不同的语言版本
- AddHandler:用于指定非静态的处理类型,用指定的方式处理非静态文档后,再向浏览器返回处理结果
apache解析的特性
Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令,比如,我们在httpd.conf中添加如下配置文件
AddType text/html .html
AddLanguage zh-CN .cn
此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面(.cn后缀对应的AddLanguage是zh-CN,.html对应的AddType是text/html,.html和.cn标记的属性同时被apache执行了),那么,如果在apache配置文件中添加了php对应的解析的话,我们上传的文件中只要包含.php,php文件就会被执行
# 在配置文件中添加此项,将会造成一个可以绕过上传白名单的解析漏洞
AddHandler application/x-httpd-php .php
具体步骤
访问网页发现存在上传点,直接上传webshell.php发现失败
查看靶机的apache的配置文件
# 在vulhub/httpd/apache_parsing_vulnerability/conf目录下
$ cat docker-php.conf
AddHandler application/x-httpd-php .php就是这里
DirectoryIndex disabled
DirectoryIndex index.php index.html
<Directory /var/www/>
Options -Indexes
AllowOverride All
我们可以利用apache的多后缀解析漏洞进行上传
成功上传并且给出了路径
访问用蚁剑连接后查看权限
之后可以试试提权操作!!!!