综合

apache常见的漏洞

时间:2010-12-5 17:23:32  作者:时尚   来源:百科  查看:  评论:0
内容摘要:Apache HTTP Server 在全球web服务器市场占有率常年稳居前三,但它的默认配置和常见部署方式往往比代码本身更容易被攻破。漏洞不总在CVE编号里,更多时候藏在运维习惯中。 先看一个最典型

Apache HTTP Server 在全球web服务器市场占有率常年稳居前三,漏洞但它的漏洞默认配置和常见部署方式往往比代码本身更容易被攻破。漏洞不总在CVE编号里,漏洞更多时候藏在运维习惯中。漏洞

先看一个最典型的漏洞案例:CVE-2017-15715。这个漏洞利用了Apache对文件名解析的漏洞“诡异”规则——当文件名末尾带有一个空格或点号时,服务器会将其识别为.php后缀执行。漏洞攻击者只需上传一个名为“shell.php ”的漏洞文件(注意末尾空格),就能绕过上传白名单。漏洞这个漏洞在2017年被修复,漏洞但直到今天仍能在大量生产环境中扫描到,漏洞因为很多管理员根本没打开AllowOverride,漏洞或者压根不知道AddType指令的漏洞优先级问题。

另一个高频雷区是漏洞目录遍历。Apache的漏洞Alias指令如果配置不当,比如写成Alias /download /var/www/files/,而目标目录又存在符号链接,攻击者就能通过构造../路径跳出限制。更隐蔽的是,某些版本对URL编码的二次解码存在差异——比如%252e%252e%252f经过两次解码后变成../,如果服务器启用了mod_proxy,这个编码差异就可能被利用。我见过一个真实案例,某公司把内部监控系统挂在Apache后面,只做了IP白名单,结果攻击者用X-Forwarded-For: 127.0.0.1头直接绕过限制,因为mod_proxy默认信任该头字段。

别忘了那个经典的“HTTP请求走私”问题。Apache 2.4.48之前版本在处理Content-Length与Transfer-Encoding冲突时存在逻辑缺陷,攻击者可以向前端Apache发送一个恶意请求,让后端Tomcat或Node.js误判为两个独立请求。这直接导致缓存投毒或会话劫持。最讽刺的是,很多安全团队只检查了Nginx的此类漏洞,却忽略了Apache——因为Apache文档里明确写着“不推荐同时使用这两个头”,但默认配置里从没强制校验过。

还有一类漏洞属于“配置即漏洞”。比如默认安装的Apache会带一个server-status模块,如果管理员没限制访问IP,任何人都能通过/server-status看到所有活跃请求的URL、客户端IP甚至正在处理的POST参数。2019年某云厂商的一次安全审计显示,他们扫描的10万个Apache实例中,有11%暴露了这个页面。更糟的是,很多人启用了mod_info,直接泄露整个服务器的配置结构。

说个反直觉的观察:Apache的漏洞修复速度其实不慢,但真正致命的是版本碎片化。很多企业还在跑2.2.x的老版本,因为业务代码依赖某些不兼容的模块。我见过一台运行了7年的CentOS 6服务器,Apache版本停在2.2.15,上面挂着银行内部的反欺诈系统。CVE-2012-0053(一个简单的整数溢出导致DoS)都修不了,因为升级会破坏一个老旧的Perl模块。

最后提醒个细节:Apache的.htaccess文件默认是禁用的,但一旦开启,每个目录下的这个文件都会成为攻击面。攻击者上传一个包含SetHandler application/x-httpd-php的.htaccess到图片目录,配合一个图片马,就能直接执行代码。这个手法不新,但至今仍有大量共享主机中招——因为管理员为了给用户提供灵活性,开启了AllowOverride All,却忘了限制可用的指令类型。

Apache安全的核心原则其实就三条:及时升级、最小化模块加载、严格校验路径与头字段。但现实里,总有人为了省事或者兼容旧系统,把这三条全踩一遍。服务器安全从来不是补丁游戏,而是对默认配置保持怀疑态度的习惯。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap