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

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

缺陷编号:wooyun-2012-07819

漏洞标题:aspcms任意用户密码重置

相关厂商:aspcms

漏洞作者: viekst

提交时间:2012-06-03 10:14

修复时间:2012-06-08 10:15

公开时间:2012-06-08 10:15

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

危害等级:高

自评Rank:15

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-06-03: 细节已通知厂商并且等待厂商处理中
2012-06-08: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

aspcms会员中心的某些页面,对用户的验证存在缺陷,修改cookie后提交即可重置任意用户的帐号信息。

详细说明:

'member/reg.asp
dim action : action=getform("action","get")
if action = "reg" then
addUser()
elseif action = "editpass" then
editUser()
else
echoContent()
end if
'第3-10行 接受一个get请求,如果action为editpass时候执行editUser过程
Sub editUser
dim LoginName,userPass,reuserPass,Email,Mobile,Address,PostCode,Gender,QQ,TrueName,Phone
LoginName=trim(rCookie("loginName"))
userPass=getForm("userPass","post")
reuserPass=getForm("reuserPass","post")

Email=filterPara(getForm("Email","post"))
Mobile=filterPara(getForm("Mobile","post"))
Address=filterPara(getForm("Address","post"))
PostCode=filterPara(getForm("PostCode","post"))
Gender=filterPara(getForm("Gender","post"))
QQ=filterPara(getForm("QQ","post"))
TrueName=filterPara(getForm("TrueName","post"))
Phone=filterPara(getForm("Phone","post"))

if userPass<>reuserPass then alertMsgAndGo "两次输入密码不相同","-1"

dim passStr
if not isnul(userPass) then passStr="[Password]='"&md5(userPass,16)&"',"
Conn.Exec"update {prefix}User set "&passStr&" Email='"&Email&"',QQ='"&QQ&"',Mobile='"&Mobile&"',Address='"&Address&"',PostCode='"&PostCode&"',Gender="&Gender&",Phone='"&Phone&"',TrueName='"&TrueName&"' where LoginName='"&LoginName&"'","exe"
alertMsgAndGo "修改成功","editPass.asp"
End Sub
'第24-47行 是editUser过程
'从中可以看出,对用户修改密码根本没做任何验证,cookie值是我们可以修改的
'将LoginName值修改为admin提交修改即可重置管理员信息
'同样存在此问题的还有userinfo.asp 页面

漏洞证明:

修复方案:

禁用外部提交,加强用户验证

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


漏洞回应

厂商回应:

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

漏洞Rank:13 (WooYun评价)


漏洞评价:

评论

  1. 2012-06-03 11:48 | viekst ( 实习白帽子 | Rank:64 漏洞数:11 )

    相关厂商怎么填错了嘛 @xsser 麻烦帮改下呀...

  2. 2012-06-03 11:53 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    额 你自己选的嘛

  3. 2012-06-03 12:00 | viekst ( 实习白帽子 | Rank:64 漏洞数:11 )

    额 提交时相关厂商那没看到对应的,也没注意,填好就提交了. 要是能重新编辑下就好了。

  4. 2012-06-08 11:38 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @viekst 额,应该给个时间点可编辑的,我们尽快增加这个功能吧,另外有用户指出,这个update只能update用户表,不能update admin表?

  5. 2012-06-08 23:41 | viekst ( 实习白帽子 | Rank:64 漏洞数:11 )

    @xsser 管理员和会员同属于User表啊,稳定版的不是,但其也没有会员。另外看下CheckAdmin 和CheckLogin函数,很有意思!