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

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

缺陷编号:wooyun-2014-063412

漏洞标题:新太BS客服系统insert注入导致任意密码重置&&任意文件下载

相关厂商:新太科技股份有限公司

漏洞作者: 路人甲

提交时间:2014-06-04 12:43

修复时间:2014-09-02 12:44

公开时间:2014-09-02 12:44

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:10

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-06-04: 细节已通知厂商并且等待厂商处理中
2014-06-08: 厂商已经确认,细节仅向厂商公开
2014-06-11: 细节向第三方安全合作伙伴开放
2014-08-02: 细节向核心白帽子及相关领域专家公开
2014-08-12: 细节向普通白帽子公开
2014-08-22: 细节向实习白帽子公开
2014-09-02: 细节向公众公开

简要描述:

新太BS客服系统insert注入导致任意密码重置&&任意文件下载。系统多用于运营商行业。

详细说明:

注入文件:PasswordPost.jsp

<%!
public String setAgentPwd(String strAgentID, String strPwd) {
AgentFrameLog.logger.info("INVK setAgentPwd('" + strAgentID + "','***','***')");
Connection conn = null;
Statement st = null;
try {
conn = AppHandle.getHandle("agent").getConnection();
st = conn.createStatement();
String sql = "UPDATE users SET u_password = '" + strPwd + "' WHERE u_name = '" + strAgentID + "'";
st.addBatch(sql);
sql = "update base_user set user_pwd='" + strPwd + "' where user_code='" + strAgentID + "'";
st.addBatch(sql);
st.executeBatch();
AgentFrameLog.logger.info("Password update succeeded.");
return "T";
}
catch(Exception ex) {
AgentFrameLog.logger.error(ex, ex);
return "F";
}
finally {
try {st.close(); conn.close();} catch (Exception e) {}
AgentFrameLog.logger.info("Connection and PreparedStatement closed.");
}
}
%>
<%
String AgentId = (String)request.getParameter("AgentId");
String NewPwd = (String)request.getParameter("newuserpwd1");
String ret_str = setAgentPwd(AgentId, NewPwd);
if(ret_str.equals("T")) {
out.println("<script>alert('密码修改成功!'); parent.close();</script>");
}
else {
out.println("<script>alert('密码修改失败!'); </script>");
}
%>


对用户输入未进行任何过滤,直接带入数据库。
先试下有没有这个工号

BS客服系统.jpg


然后按照代码提交参数重置密码

resetPassword.jpg


然后直接登陆,没装插件显示不全。。

login.jpg

漏洞证明:

还有一鸡肋文件下载漏洞存在示例标签库

<%
String target= request.getParameter("target");
if (target == null) {
out.println("没有取到target参数");
return;
}
if (!target.startsWith("/")) {
target = "/" + target;
}
InputStream input = pageContext.getServletContext()
.getResourceAsStream(target);
if (input == null) {
out.println("文件没有找到");
return;
}
byte[] buff = new byte[1024];
int len = -1;
out.println("<html><head><title>自定义标签库样例源代码参考</title></head><body><textarea style='width:100%;height:99%'>");
while ((len = input.read(buff, 0, buff.length)) > 0) {
out.println(new String(buff, 0, len));
}
out.println("</textarea></body></html>");
%>


http://dns.suntektech.com//eaptag2/pages/examples/demo/source.jsp?target=WEB-INF/web.xml

download.jpg

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:17

确认时间:2014-06-08 21:54

厂商回复:

CNVD确认并在两个实例上确认通用性,已经由CNVD通过公开联系渠道向软件生产厂商通报,-9(转接,常工),将通报发送至 邮箱中处置。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-03-26 16:15 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    明明是UPDATE 啊.....