Apache HTTP
Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
[2] Apache
HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。 --百度
文章目录
1.Apache换行解析漏洞(CVE-2017-15715):
漏洞描述:
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
x0A是16进制的ASCII码,代表换行符,所以这个漏洞是换行解析漏洞,在文件后缀中加入换行符,文件按照php解析
漏洞原理:
关于原理我这里引用的是前辈们的总结
apache的这个解析漏洞根本原因就是一个 $ 符,在正则中通常用 $ 符来匹配字符串的结尾位置
匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 \ $。
这里说的RegExp 对象,用来表示的就是正则表达式
也就是在设置过RegExp 对象的 Multiline 属性后$会匹配 ‘\n’ 或 ‘\r’。
那我们进入docker环境中看一看apache2是如何配置的