Vulhub漏洞复现之Apache解析漏洞总结

我是啊锋,一个努力的学渣,作为一个刚进入安全大门的小白,我希望能把自己所学到的东西总结出来,分享到博客上,可以一起进步,一起交流,一起学习。

前文:

名字雷同但差个n的两种类型漏洞环境靶机:vulnhub与vulhub的区别

Vulhub漏洞复现之Dns域传送漏洞

Vulhub漏洞复现之Django (小于2.0.8)任意url跳转漏洞(CVE-2018-14574)

Vulhub漏洞复现之ThinkPHP5.X SQL注入漏洞和敏感信息泄露漏洞


Apache 换行解析漏洞(CVE-2017-15715)

Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

Vulhub环境启动

cd vulhub/httpd/CVE-2017-15715

对靶场进行编译:docker-compose build
运行靶场:docker-compose up -d

环境启动后发现页面是空白的需要自己添加前端的文件上传页面,代码如下,直接F12把代码黏贴到查看器的body里面

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="text" name="name">
    <input type="submit" value="submit">
</form>

在这里插入图片描述
正常上传.php文件上传不成功,burp抓包后发送到Repeater然后hex在置右键-Insert byte,在0d、0a前加一个0a,然后send,即可绕过上传
在这里插入图片描述
在页面访问http://192.168.0.99:8080/feng.php%0a
在这里插入图片描述


Apache多后缀解析漏洞

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件:

AddType text/html .html
AddLanguage zh-CN .cn

其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。
以上就是Apache多后缀的特性。
如果运维人员给.php后缀增加了处理器:

AddHandler application/x-httpd-php .php

那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

Vulhub环境启动

cd vulhub/httpd/apache_parsing_vulnerability

对靶场进行编译:docker-compose build
运行靶场:docker-compose up -d

环境启动成功后访问/index.php
在这里插入图片描述
上传feng.php上传失败
在这里插入图片描述
抓包修改后缀添加.jpg再上传
在这里插入图片描述
上传成功且返回了路径,直接访问IP/uploadfiles/feng.php.jpeg
在这里插入图片描述
漏洞防御
利用正则表达式
1、使用SetHandler,写好正则

<FileMatch “.+.php$”>

SetHandler application/x-httpd-php

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

<FileMatch “.+.ph(p[3457]?|t|tml).”>

Require all denied

参考

https://www.cnblogs.com/yuzly/p/11226377.html

发布了34 篇原创文章 · 获赞 67 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41598660/article/details/104118036