关于Exchange CVE-2021–26855与CVE-2021–27065漏洞分析及复现
字数 1767 2025-08-09 16:00:20
Exchange漏洞CVE-2021-26855与CVE-2021-27065分析与复现指南
漏洞概述
本教学文档详细分析Microsoft Exchange Server中的两个高危漏洞:
- CVE-2021-26855:服务器端请求伪造(SSRF)漏洞
- CVE-2021-27065:任意文件写入漏洞
这两个漏洞组合利用可实现未授权的webshell写入,危害极大。
CVE-2021-26855 (SSRF漏洞)分析
漏洞位置
C:\Program Files\Microsoft\ExchangeServer\V15\FrontEnd\HttpProxy\bin\Microsoft.Exchange.FrontEndHttpProxy.dll
漏洞触发流程
-
请求处理入口:
ProxyModule.OnPostAuthorizeRequest→OnPostAuthorizeInternal- 该函数负责对POST请求进行安全检查
-
处理未认证请求:
- 调用
SelectHandlerForUnauthenticatedRequest函数 - 根据URL中的web子目录(
ProtocolType)生成不同的httpHandler - 当
ProtocolType为"ecp"时,检查BEResourceRequestHandler.CanHandle返回值
- 调用
-
CanHandle条件:
GetBEResouceCookie返回真:需要请求cookies中包含X-BEResource字段IsResourceRequest返回真:请求路径需以.js、.png等结尾
-
请求处理链:
- 设置
context.Handler为BEResourceRequestHandler - 调用
ProxyRequestHandler.BeginProcessRequest() - →
BeginCalculateTargetBackEnd - →
InternalBeginCalculateTargetBackEnd - →
BEResourceRequestHandler.ResolveAnchorMailbox
- 设置
-
关键解析过程:
BackEndServer.FromString解析X-BEResource字段:- 使用
~符号分割字符串 - 前半部分作为FQDN(全限定域名)
- 后半部分作为BackEndServer Version
- 使用
-
SSRF实现:
ProxyRequestHandler.BeginProxyRequest使用可控的BackEndServer.FqdnPrepareServerRequest通过else分支绕过认证- 最终实现未认证的SSRF攻击
CVE-2021-27065 (任意文件写入漏洞)分析
利用前提
- 需要管理员账号权限
- CVE-2021-26855可帮助获取管理员权限
漏洞利用步骤
- 登录管理员账号
- 导航至:服务器 → 虚拟目录 → OAB
- 在"外部链接"中写入webshell代码:
http://aaa/<script language="JScript" runat="server">function Page_Load(){eval(Request["SD"],"unsafe");}</script> - 保存配置
- 选择"重置虚拟目录"
- 指定webshell写入位置:
\\127.0.0.1\c$\inetpub\wwwroot\aspnet_client\sd.aspx - 验证webshell是否成功写入
漏洞复现环境准备
- 搭建Exchange Server测试环境
- 确保可访问Exchange Web服务(OWA, ECP等)
- 准备攻击机器(可安装ProxyShell等利用工具)
组合利用流程
- 利用CVE-2021-26855进行SSRF攻击,获取管理员权限
- 利用获得的管理员权限触发CVE-2021-27065
- 通过任意文件写入上传webshell
- 访问webshell获取服务器控制权
防御措施
- 及时安装微软官方补丁
- 限制Exchange服务器对外暴露
- 实施网络分段,隔离Exchange服务器
- 监控异常请求模式(特别是包含X-BEResource的请求)
- 定期审计服务器文件系统,检查可疑文件
参考资源
- 微软官方安全公告
- ProxyShell漏洞利用工具
- Exchange Server安全配置指南
通过本教学文档,您应该能够全面理解这两个Exchange漏洞的原理、利用方式及防御方法。在实际环境中进行测试时,请确保遵守相关法律法规,仅在授权环境下进行安全测试。