Apache Httpd 常见漏洞解析(全)
内容提要
本文介绍六个Apache HTTPD漏洞:CVE-2017-15715换行解析漏洞,可用\x0A绕过上传限制;多后缀解析漏洞,上传xxx.php.jpg可绕过白名单;SSI远程命令执行漏洞,上传shtml文件执行命令;CVE-2021-41773路径穿越漏洞,可读取Web目录外文件或执行命令;CVE-2021-42013为其修复不完整所致,可用.%%32%65绕过;CVE-2021-40438为mod_proxy的SSRF漏洞。
延伸解读
漏洞影响版本与利用条件
文中涉及的六个漏洞均有特定的版本限制和利用前提。例如,CVE-2017-15715影响Apache 2.4.0~2.4.29;CVE-2021-41773仅影响2.4.49;CVE-2021-42013影响2.4.49和2.4.50;CVE-2021-40438影响2.4.48及之前版本。此外,部分漏洞需特定模块开启,如路径穿越漏洞在开启cgi或cgid时可执行命令,SSI漏洞需服务器支持SSI与CGI。了解这些条件有助于判断实际环境是否受影响。
绕过机制与修复不完整风险
文章揭示了多种绕过安全策略的手法:CVE-2017-15715利用换行符\x0A使1.php\x0A被解析为PHP;多后缀解析漏洞利用AddHandler特性,使xxx.php.jpg被识别为PHP;CVE-2021-42013则是由于CVE-2021-41773修复不完整,攻击者可用.%%32%65绕过修补。这些案例说明,仅依赖后缀黑名单或简单过滤可能被绕过,修复时需全面考虑编码变体。
漏洞利用的共性条件
多个漏洞的利用都依赖于特定目录的存在与可访问性。例如,CVE-2021-41773和CVE-2021-42013的Payload中均要求/icons/目录存在且可访问;SSI漏洞需要上传shtml文件并利用exec命令;多后缀解析漏洞要求上传组件未重命名文件。这些条件提示,在评估风险时,除了版本,还需检查服务器配置和目录权限。
Q&A
Apache HTTPD 换行解析漏洞(CVE-2017-15715)影响哪些版本?如何利用?
影响 Apache HTTPD 2.4.0~2.4.29 版本。在解析 PHP 时,1.php\x0A 会被当作 PHP 后缀解析,从而绕过安全策略。利用时,在文件名后插入一个 \x0A(不能是 \x0D\x0A),例如上传 123.php\x0A,即可绕过上传限制。
Apache 多后缀解析漏洞的原理是什么?如何绕过上传白名单?
Apache 支持一个文件有多个后缀,只要文件名中含有 .php 后缀,就会被识别为 PHP 文件,不要求 .php 是最后一个后缀。因此可以上传 xxx.php.jpg 或 xxx.php.jpeg 等文件,绕过只检查后缀的白名单上传组件,从而 getshell。
Apache SSI 远程命令执行漏洞在什么条件下可以利用?具体步骤是什么?
当目标服务器开启了 SSI 与 CGI 支持,且存在文件上传点时,可以上传一个 .shtml 文件,内容包含 <!--#exec cmd="id" --> 等语法,即可执行任意命令。例如上传 shell.shtml 内容为 <!--#exec cmd="ls" -->。
CVE-2021-41773 路径穿越漏洞影响哪些版本?攻击者能做什么?
影响 Apache HTTP Server 2.4.49 版本,且穿越的目录允许被访问(默认不允许)。攻击者可读取 Web 目录外的文件、读取 Web 目录中脚本源码,或在开启 cgi/cgid 模块的服务器上执行任意命令。
CVE-2021-42013 与 CVE-2021-41773 有什么关系?如何绕过修复?
CVE-2021-42013 是由于 CVE-2021-41773 修复不完整导致的,影响 Apache HTTP Server 2.4.49 和 2.4.50。攻击者可以使用 .%%32%65 进行绕过,例如构造 URL:/icons/.%%32%65/.%%32%65/.../etc/passwd,从而读取文件或执行命令。
Apache mod_proxy SSRF 漏洞(CVE-2021-40438)影响哪些版本?如何触发?
影响 Apache HTTP Server 2.4.48 及以前版本。mod_proxy 模块存在逻辑错误,攻击者可以控制反向代理服务器的地址,导致 SSRF 漏洞。通过构造类似 GET /?unix:AAAA...|http://example.com/ 的请求即可触发。