目录
apache未知扩展名解析漏洞
漏洞复现
防范建议
AddHandler导致的解析漏洞
防范建议
Apache HTTPD 换行解析漏洞(CVE-2017-15715)
漏洞复现
防范建议
apache未知扩展名解析漏洞
Apache默认一个文件可以有多个以点分割的后缀,当最右边的后缀无法识别,则继续向左识别,直到识别到合法后缀才进行解析。
哪些后缀Apache不认识? 不在mime.types当中的都不认识 (Multipurpose Internet Mail Extensions)
使用module模式与php结合的所有版本apache存在未知扩展名解析漏洞。
使用fastcgi模式与php结合的所有版本apache不存在此漏洞。
利用此漏洞时必须保证扩展名中至少带有一个.php,不然将默认作为txt/html文档处理。
漏洞复现
在vulhub靶场中实现
[root@server apache_parsing_vulnerability]# docker-compose up -d --启动靶场
[root@server apache_parsing_vulnerability]# docker-compose ps --查看端口
打开浏览器访问该端口
在电脑中创建一个文件,文件内容为
<?php
phpinfo()
?>
然后将文件名改为1.php.jpg
选择文件提交上传
上传成功后访问该文件
出现phpinfo信息表示成功
防范建议
方法一
在httpd.conf或httpd-vhosts.conf中加入以下语句,从而禁止文件名格式为.php.的访问权限:
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
</FilesMatch>
方法二
如果需要保留文件名,可以修改程序源代码,替换上传文件名中的“.”为“_”: $filename = str_replace('.', '_', $filename);
AddHandler导致的解析漏洞
在有多个后缀的情况下,只要包含.php后缀的文件就会被识别出php文件进行解析,不需要是最后一个后缀
和上面例子一样
最后一个后缀名为.jpg,合法,因为文件名info.php.jpg中包含.php,所以解析为php文件
防范建议
1.在httpd.conf或httpd-vhosts.conf中加入以下语句,从而禁止文件名格式为.php.的访问权限:
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
</FilesMatch>
2.把配置不当的文件进行修改
Apache HTTPD 换行解析漏洞(CVE-2017-15715)
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在 一个解析漏洞,在解析PHP时,1.php\x0a将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
影响范围
apache :2.4.0~2.4.29版本
漏洞复现
先创建文件,文件内容为phpinfo
正常上传会出现badfile,无法上传
用bp代理抓包,送到repeater模块
在hex模块里找到1.php
在07后面插入0a
点击send,没有回显badfile了
访问该文件
成功看到info信息,利用成功
防范建议
1.升级到最新版本
2.或将上传的文件重命名为为时间戳+随机数+.jpg的格式并禁用上传文件目录执行