Apache文件解析漏洞
发布日期:2023-06-11 01:55:34 浏览次数:9 分类:技术文章

本文共 1437 字,大约阅读时间需要 4 分钟。

目录


漏洞原理

Apache解析原理

apache通过查看mime.types文件来查看是否能够识别上传文件的文件类型。在/etc/mime.types文件中记录了大量的文件后缀和mime类型,当客户端请求一个文件时,如果后缀在该文件中,apache将返回对应的content-type给浏览器。如果不在这个文件中则不会返回content-type给浏览器,而直接文件内容,由浏览器自动处理。

漏洞原理

Apache文件解析漏洞涉及一个解析文件的特性:Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别(不在mime.types内),则继续向左识别。

当我们请求一个文件:1.php.xxx.yyy

yyy -> 无法识别,向左

xxx -> 无法识别,向左

php -> 可以识别,交给php处理该文件

产生原因

Apache本身不存在解析漏洞,漏洞的产生是因为网站管理员在配置服务器是的不当操作产生的。

  • 在Apache虽然将1.php.xxx.yyy交给php处理文件,但是php也不认识.xxx.yyy的后缀,所以直接就输出了。但因为在网站管理人员为了使apache服务器能够解析php,而自己添加了一个handler导致了解析漏洞的产生。

复现过程

环境配置

靶机:192.168.111.147(Ubuntu 16.0)

下载相关程序

下载Apache

apt-get install apache2

 下载php7.0

apt-get install php7.0

将apache与php以module的方式连接

apt-get install libapache2-mod-php7.0
  1. Apache和php三种结合方法
    1. CGI:通常翻译为共同网关接口,是HTTP服务器与机器上的其他程序进行通信的一个接口,让Web服务器必要时启动额外的程序处理动态内容
    2. FastCGI:CGI解释器的更快实现,可以提供良好的性能、伸缩性、Fail-Over特性等等
    3. Module:把PGP编译为apache的模块

 查看Apache状态

 复现漏洞产生原因

创建配置文件

  • 进入存放配置文件的文件夹并创建一个1.conf的配置文件

  •  AddHandler application/x-httpd-php .php的作用是为了apache把php文件交给php_module解析,但是注意到它与SetHandler:它的后缀不是用正则去匹配的。所以,在文件名的任何位置匹配到php后缀,它都会让php_module解析。

cd /etc/apache2/site-enabled/vim 1.confAddHandler application/x-httpd-php .php

重启Apache服务并查看状态

service apache2 restartservice apache2 status

漏洞验证

进入根目录

cd /var/www/html

在根目录中创建一个1.php.aaa的文件,在浏览器中访问

1.php.aaa被apache以.php文件正常解析,文件解析漏洞复现完成

修复方法

不使用AddHandler改用SetHandler,写好正则匹配,就不会有解析问题。

SetHandler application /x-httpd-php

禁止.php.这样的文件执行

Require all denied

 

转载地址:https://blog.csdn.net/weixin_53696027/article/details/129244190 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:apache文件解析漏洞复现
下一篇:Apache应用和配置

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月05日 08时53分14秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章