热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Optionsbleed

本周一安全研究员HannoBöck发现,部分Apache服务器可能因Optionsbleed漏洞(CVE-2017-9798)泄漏服务器内存信息。实际上这个漏洞和OpenSSL的心

本周一安全研究员 Hanno Böck 发现,部分 Apache 服务器可能因 Optionsbleed 漏洞(CVE-2017-9798)泄漏服务器内存信息。实际上这个漏洞和 OpenSSL 的心脏滴血问题有相似的地方,攻击者都可以查询服务器并向Apache服务器骗取数据。目前该漏洞原因已经探明,评级为中危,影响的范围有限,运行 Apache Web 服务器的用户请升级至最新版本并安装补丁。【补丁见文末】

Optionsbleed 漏洞泄露 Apache Server 的内存信息

Böck 表示 Optionsbleed 在严重性上比不上 Heartbleed,因为Optionsbleed 仅仅会在 Apache web 服务器进程中泄露信息,而不是泄漏所有全部的数据内容。也就是说,泄漏的数据内容仅限于Apache正在处理的内容,一般只是 WWeb 页面的内容。尽管如此危险仍然存在,因为 Optionsbleed 依然可能泄漏原本只有认证用户才可获取的特定页面内容。

Optionsbleed 如何影响服务器

我们都知道Web服务器的工作原理,每当客户端(如Web浏览器)向服务器发出请求时,GET 或 POST 请求会发送到服务器端,服务器响应就会传送 Web 页面的内容或相应的文件到客户端。

而 Apache 服务器能够响应很多其他的请求(方法)——例如 PUT,PATCH,HEAD 以及其他方法。而这些请求是随着时间发展慢慢添加进来的,并非所有的 Apache 服务器都可以支持。因此,部分的服务器管理员可能会禁止部分方法。而为了避免发送给服务器的请求进入“黑洞”,Apache 服务器支持名为 OPTIONS 的方法。客户端可以通过 OPTIONS 方法请求查询服务器能够响应的HTTP方法,而服务器则会返还一串以逗号分隔的支持方法的名字。

Optionsbleed 漏洞泄露 Apache Server 的内存信息

Optionsbleed 漏洞发现过程

这次 Optionsbleed 的漏洞发现源于研究员 Böck 进行的一项测试,他扫描了 Alexa 排名前 100 万的网站,来看看哪些网站使用支持 OPTIONS 的 Apache 服务器。而测试结果显示,466 台主机响应了与下述内容相似的乱码回复。

Allow: ,GET,,,POST,OPTIONS,HEAD,,

Allow: POST,OPTIONS,,HEAD,:09:44 GMT

Allow: GET,HEAD,OPTIONS,,HEAD,,HEAD,,HEAD,, HEAD,,HEAD,,HEAD,,HEAD,POST,,HEAD,, HEAD,!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“

Allow: GET,HEAD,OPTIONS,=write HTTP/1.0,HEAD,,HEAD,POST,,HEAD,TRACE

可以看到,除了正常的的 Allow 响应之外,其中的这 466 台服务器还答复了一些随机数据,看起来像网页的源代码——这些就是所谓的泄漏内容了。 Böck 发现自己无法重现问题并找到关键所在,所以他立即向Apache安全团队汇报了自己的发现。

随后,Apache 开发人员 Jacob Champion 协助进行调查之后发现,Apache 源代码中存在 Optionbleed 漏洞,展开修补后立即提供了补丁文件。

Optionsbleed 漏洞只影响少量服务器

在进行深入调查 Optionsbleed 之后, Böck 和 Champion 发现 Optionsbleed 在危险性上远远不如此前OpenSSL导致的心脏滴血问题(Heartbleed)。问题出现的前提是——管理员在服务器配置的.htaccess 文件中应用了 “Limit” 选项。


Deny from all

一般,服务器管理员将 .htaccess 文件放在 Apache 服务器文件夹中,以便设置仅适用于该文件目录的规则。而服务器所有者使用 .htaccess 的 “Limit” 选项来控制服务器单独在该文件夹中应答的请求。

Böck 和 Champion则表示,如果.htaccess文件的规则与放置在上层目录或普通服务器配置中的.htaccess文件中的限制规则相矛盾时,Apache 就会陷入混淆,因此出现 Optionsbleed 漏洞。

从技术角度来看,这是一个 use-after-free 的漏洞,会在 Apache 服务器附近的内存区域泄漏出内容。

漏洞测试脚本

最简单的测试方法是在循环中使用 Curl 发送OPTIONS 请求:

for i in {1..100}; do curl -sI -X OPTIONS https://www.google.com/|grep -i "allow:"; done

不同的服务器配置下,对于OPTION请求可能会有不同的响应。需要测试的用户可以尝试不同的路径,HTTP或者 HTTPS host,有 www 或没有 www开头的地址都可能导致不同的测试结果。

python的POC脚本【github】

问题从 2014 年开始就存在

也有其他用户指出,这个问题此前在2014年时曾被 Old Dominion University 的研究员发现过并写在论文中。

但目前来看 Apache Web 服务器团队还没有发布新的二进制文件,目前可用的补丁文件适用于2.4.x和2.2.x版本。

而对于运行在共享环境中的Apache服务器,由于多个用户在同一台机器上都不输了不同的.htaccess文件,最有可能受到 Optionsbleed 漏洞影响。建议所有服务器尽快安装补丁。

参考来源:

helpnetsecurity

securityaffairs

bleepingcomputer

exploit-db

python PoC

fuzzing-project

*本文作者:Elaine,转载请注明FreeBuf.COM


推荐阅读
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • MySQL日志分析在应急响应中的应用与优化策略
    在应急响应中,MySQL日志分析对于检测和应对数据库攻击具有重要意义。常见的攻击手段包括弱口令、SQL注入、权限提升和备份数据窃取。通过对MySQL日志的深入分析,不仅可以及时发现潜在的攻击行为,还能详细还原攻击过程并追踪攻击源头。此外,优化日志记录和分析策略,能够提高安全响应效率,增强系统的整体安全性。 ... [详细]
  • 在Java应用程序中调用`response.getStatus()`方法时遇到了`NoSuchMethodError`异常,经过分析,初步判断为依赖冲突问题。通过检查项目依赖树发现,当前项目版本与某些库的版本不兼容,导致该方法无法被正确识别。建议通过更新相关依赖版本或使用依赖管理工具(如Maven或Gradle)来解决此问题,确保所有依赖项版本一致且兼容。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 利用Telnet进行Memcached操作详解
    在使用Telnet对Memcached进行操作前,需确保Memcached服务已启动。可通过命令如 `ps -ef | grep memcached` 或 `netstat -l | grep memcache` 来检查服务状态。此外,建议验证端口监听情况以确保连接无误。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • 微软发布紧急安全更新,所有Windows 10版本均面临影响!
    微软于周五紧急发布了两项安全更新,旨在解决Windows 10所有版本中Windows Codecs库和Visual Studio Code应用存在的安全隐患。此次更新是继本周初发布的月度例行安全补丁之外的额外措施,凸显了这些问题的紧迫性和重要性。这些漏洞可能被攻击者利用,导致系统权限提升或远程代码执行等严重后果。建议用户尽快安装更新,以确保系统的安全性。 ... [详细]
  • AngularJS uirouter模块下的状态管理机制深入解析
    本文深入探讨了 AngularJS 中 ui-router 模块的状态管理机制。通过详细分析状态配置、状态转换和嵌套状态等核心概念,结合实际案例,帮助开发者更好地理解和应用这一强大工具,提升单页面应用的开发效率和用户体验。 ... [详细]
  • Envoy 流量分配策略优化
    在本研究中,我们对Envoy的流量分配策略进行了优化,旨在提高系统的稳定性和性能。实验环境包括一个前端代理服务(Envoy,IP地址为172.31.57.10)和五个后端服务。通过调整Envoy的配置,实现了更高效的流量分发和负载均衡,显著提升了整体系统的响应速度和可靠性。 ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
author-avatar
手机用户2502903031
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有