CVE-2021-29156-ForgeRock OpenAm Webfinger协议 LDAP注入漏洞

VSole2021-12-02 05:50:39

下面和大家分享ForgeRock OpenAM的另一个漏洞。ForgeRock OpenAM v13.5.1(商业版)在Webfinger接口处存在LDAP注入漏洞,CVE编号为CVE-2021-29156,导致未授权用户可以通过遍历方式爆破密码Hash等敏感信息。经分析发现开源版的最新版本也存在该漏洞。

漏洞分析

通过翻阅资料,找到了Webfinger接口的访问格式定义:

$ curl \--request GET \"https://openam.example.com:8443/openam/.well-known/webfinger\?resource=acct%3Ademo%40example.com\&realm=Engineering\&rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer"{  "subject": "acct:demo@example.com",  "links": [    {      "rel": "http://openid.net/specs/connect/1.0/issuer",      "href": "https://openam.example.com:8443/openam/oauth2"    }  ]
}

分析`web.xml`,找到`WebFinger`这个servlet:

相关请求由`org.restlet.ext.servlet.ServerServlet`进行处理,对应的是`Restlet Framework`框架。初始化参数`org.restlet.application`指定了实际处理类为`org.forgerock.openidconnect.restlet.WebFinger`:

函数`createInboundRoot`中注册了路径规则`webfinger`,对应的过滤器为`auditWithOAuthFilter`,实际处理请求查询的类为`OpenIDConnectDiscovery`:

如上图所示,上面的参数处理过程与Webfinger接口的访问格式完成了对应,打下断点,构造访问URL,成功触发断点:

进入:

首先完成对参数`rel`、`resource`的格式检查处理,提取参数`userid`,调用函数`isUserValid`进行判断,一路跟进,最终通过`SMSEmbeddedLdapObject`来完成LDAP查询:

如果搜索结果存在,将返回200,否则返回404,那么就可以通过移位爆破的方式获取密码Hash。

漏洞POC

遍历提取过程如下:


漏洞ldap
本作品采用《CC 协议》,转载必须注明作者和本文链接
这篇文章主要收集一些常见的未授权访问漏洞。未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。 在进行fastjson的漏洞复现学习之前需要了解几个概念,如下:
据Preempt研究人员称,RDP受限管理允许认证系统降级到NTLM。研究人员在4月份发现并私下向微软报告了NTLM中的LDAP和RDP中继漏洞。然而,微软在5月份承认了NTLM LDAP漏洞,并将其指定为CVE-2017-8563,但否认了RDP漏洞,声称这是一个“已知问题”,并建议将网络配置为不受任何NTLM中继的影响。
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
4月13日是微软 2022 年 4 月补丁日,微软修复了两个已披露的0day和总共 119 个漏洞(不包括 26 个 Microsoft Edge 漏洞),其中 10 个被归类为严重,这些漏洞允许远程执行代码。
【最新漏洞预警】CVE-2021-29156-ForgeRock OpenAm Webfinger协议 LDAP注入漏洞分析。
VSole
网络安全专家