当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0132247

漏洞标题:泛微OA办公系统一处通用SQL注入(需要登陆)

相关厂商:上海泛微软件有限公司

漏洞作者: 路人甲

提交时间:2015-08-13 11:30

修复时间:2015-11-12 10:42

公开时间:2015-11-12 10:42

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-13: 细节已通知厂商并且等待厂商处理中
2015-08-14: cncert国家互联网应急中心暂未能联系到相关单位,细节仅向通报机构公开
2015-08-17: 细节向第三方安全合作伙伴开放
2015-10-08: 细节向核心白帽子及相关领域专家公开
2015-10-18: 细节向普通白帽子公开
2015-10-28: 细节向实习白帽子公开
2015-11-12: 细节向公众公开

简要描述:

一处登录后盲注,包含6.0及7.0版本

详细说明:

存在漏洞的文件:
/workflow/FormBillBrowser.jsp
参数:formName
对应的部分代码:

line 12
<%
String isBill = Util.null2String(request.getParameter("isBill"));
String name = Util.null2String(request.getParameter("formName"));
%>
跟踪变量name
line 107
String SQL = "SELECT * FROM WorkFlow_FormBase WHERE 1 = 1 ";
if(!"".equals(name))
{
SQL += " AND formName like '%" + name + "%' ";
}
if(!"".equals(subCompanyString) && null != subCompanyString)
{
SQL += "AND subCompanyID IN (" + subCompanyString + ")";
}
if(!"1".equals(isBill))
{
RecordSet.execute(SQL);
line 139
SQL = "SELECT * FROM WorkFlow_Bill";
if(!"".equals(name)){
SQL += ", HtmlLabelInfo WHERE WorkFlow_Bill.nameLabel = HtmlLabelInfo.indexID AND HtmlLabelInfo.labelName like '%" + name + "%' AND languageID = " + user.getLanguage();
if(!"".equals(subCompanyString) && null != subCompanyString)
{
SQL += "AND subCompanyID IN (" + subCompanyString + ")";
}
}else{
if(!"".equals(subCompanyString) && null != subCompanyString)
{
SQL += " where subCompanyID IN (" + subCompanyString + ")";
}
}
RecordSet.execute(SQL);


整个过程都是根据条件来拼接sql语句,最后是直接执行。
可以看到从客户端获取的参数formName的值传给变量name,在拼接sql语句时并未采取进行过滤。导致的sql注入漏洞。
验证时使用了3个站点,版本分别为6.0,7.0,7.100,以证明其通用性。
对于测试的站点表示歉意,相关机构在看到时建议对其进行提醒。
to漏洞审核同鞋:这3个站点,提供的测试帐号供验证漏洞用,如果漏洞通过审核后建议删除测试帐号和密码。
http://**.**.**.**:6688/login/login.jsp
测试帐号:T00044/1
http://**.**.**.**:9000/login/login.jsp
测试帐号:liyan/1
http://**.**.**.**/login/login.jsp
测试帐号:yuyx/123456
版本信息分别如下:

3.png


无标题.png


1.png


案例1:

POST /workflow/FormBillBrowser.jsp HTTP/1.1
Host: **.**.**.**:6688
User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://**.**.**.**:6688/workflow/FormBillBrowser.jsp
Cookie: testBanCookie=test; JSESSIONID=agHNy4iKiPud; loginfileweaver=/login/Login.jsp?logintype=1&gopage=; loginidweaver=48; languageidweaver=7; cookieLeftMenu48=undefined,undefined
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
isBill=&formName=


获取数据库列表:

2.png


案例2:

POST /workflow/FormBillBrowser.jsp HTTP/1.1
Host: **.**.**.**:9000
User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://**.**.**.**:9000/workflow/FormBillBrowser.jsp
Cookie: testBanCookie=test; JSESSIONID=abcO-0Z4x6kS58CILAd8u; loginfileweaver=%2Flogin%2FLogin.jsp%3Flogintype%3D1%26gopage%3D; loginidweaver=271; languageidweaver=7
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
isBill=&formName=


获取数据库列表:

无标题2.png


案例3:

POST /workflow/FormBillBrowser.jsp HTTP/1.1
Host: **.**.**.**
User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://**.**.**.**/workflow/FormBillBrowser.jsp
Cookie: testBanCookie=test; JSESSIONID=abcQ6ndvUlWLH9XQKBS7u; loginfileweaver=%2Fwui%2Ftheme%2Fecology7%2Fpage%2Flogin.jsp%3FtemplateId%3D4%26logintype%3D1%26gopage%3D; loginidweaver=339; languageidweaver=7
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
isBill=&formName=


获取当前数据库:

4.png

漏洞证明:

参考详细说明。

修复方案:

禁止使用拼接sql语句的形式,对客户端传送的参数值做安全检查、过滤。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-08-14 10:40

厂商回复:

CNVD确认所述情况,已由CNVD通过软件生产厂商公开联系渠道向其邮件通报,由其后续提供解决方案并协调相关用户单位处置。

最新状态:

暂无