Ivanti Avalanche任意文件上传漏洞(CVE-2023-46263)分析 2024-02-11 20:51:36 漏洞简介 ---- Ivanti Avalanche被报告了一个任意文件上传漏洞。这个漏洞的原因是在FileStoreConfig应用中存在不恰当的输入验证。 一个远程的身份认证攻击者可以通过发送精心构造的请求利用这个漏洞。成功的利用这个漏洞可以导致系统远程代码执行。 漏洞分析 ---- Ivanti Avalanche是美国Ivanti公司的一套移动设备管理系统。该系统主要用于管理智能手机、平板电脑等设备。Avalanche的Central FileStore和中央文件服务器用于存储和分发文件,这些文件与移动设备配置用的载荷有关。例如,.apk文件或者操作系统更新文件可以存储在Central FileStore。Central FileStore与理解这个漏洞有关。 Avalanche的Web接口可以通过HTTP的8080端口访问,例如: [http://ip:8080/AvalancheWeb/login.jsf](http://ip:8080/AvalancheWeb/login.jsf) Avalanche允许用户通过web界面更改文件存储路径来更改Central FileStore保存文件的位置。发送请求到AvalancheWeb/app/ FileStoreConfig接口,由com. wavink.amc.web .view. filestoreconfigbean类处理处理这个请求,可以实现更改文件存储路径。这个请求包括一个txtUncPath请求参数,该参数包含存储文件的新路径。在保存新路径之前,调用validateFileStoreUncPath方法来验证新路径是否被允许。根据不允许的值的拒绝列表和目录遍历字符检查路径。如果路径通过检查,则保存新路径。以后上传到FileStore的文件将存储到新的位置。 Central FileStore中存在一个任意文件上传漏洞。该漏洞是由于对Central FileStore配置设置中的txtUncPath字段处理不足造成的。validateFileStoreUncPath方法试图阻止新路径中包含Avalanche服务器的webroot文件夹。然而,validateFileStoreUncPath方法不阻止使用远程控制服务器的webroot父文件夹:“C:\\ProgramData\\ wavink \\Avalanche\\RemoteControlServer\\app\\”。攻击者可以将txtUncPath值设置为“C:\\ProgramData\\ wavink \\Avalanche”,绕过路径的合法性检查。然后,攻击者可以发送请求,将恶意文件上传到“RemoteControlServer\\app”子文件夹。远程控制服务器通常用于控制连接的Windows Mobile/CE设备,可以通过向http://:1900/发送HTTP请求来访问。默认情况下,远程控制服务器执行Velocity宏代码。通过将精心制作的文件上传到远程控制服务器的webroot目录,攻击者就可以在系统上执行任意命令。 源代码走查 ----- 下面的代码片段取自Ivanti Avalanche 6.4.1版本。