在 Ivanti Avalanche 上发现了一个新漏洞。已在 Avalanche Server v6.3.4.153 上测试,并被标识为 CVE-2023-41474。
这是一个受限的未认证路径遍历漏洞,意味着未授权攻击者可以访问默认配置下 C:\\PROGRAM DATA\\Wavelink\\AVALANCHE\\Web\ webapps\AvalancheWeb 中的任何文件。然而,只有部分文件扩展名(如 .xml 或 .html)可以被显示(还有其他一些扩展名,且它们也取决于 .htaccess 规则)。
要利用此问题,攻击者可以使用以下 URL:
<domain>/AvalancheWeb//faces/javax.faces.resource/<file>?loc=<directory>
例如,攻击者可以访问父目录 WEB-INF 下的 web.xml 文件。该请求可以被修改以访问任何子目录中的任何文件。
要复现该攻击,可以使用 wget 或 curl 等任何程序,并配合基本参数。
以下 BurpSuite 截图可作为成功利用的示例。

在真实场景中,未认证攻击者可以访问配置设置和其他内部信息,但机密性影响较低。
然而,在某些场景中,此目录下存在可用于会话劫持并导致服务器完全沦陷的文件。
如果攻击者拥有管理权限(或之前有管理员执行过此步骤),则可以执行 Avalanche 进程的堆转储(此功能原本用于调试目的)。该功能可以在 Tools > Support and Licensing > Web Application Server > “Heap Dump” 和/或 “Thread Dump” 中找到。

服务器的成功响应包含进程转储文件的存储路径。

由于该文件存储在 C:\Program Files\Wavelink\Avalanche\Web\webapps\ AvalancheWeb\dump.hprof,因此通过路径遍历攻击更容易访问它。现在,攻击者可以下载转储文件并对其进行分析。
wget --no-check-certificate '<domain>/AvalancheWeb//faces/javax.faces .resource/dump.hprof?loc=../'
通过执行一些基本的字符串搜索,可以发现在内存中仍然存在的登录请求体。

在这些请求体中,用户名和密码暴露给攻击者。他们可以利用这些信息提升权限或在环境中进行横向移动。