网站地图    收藏   

主页 > 后端 > 网站安全 >

aspcms任意用户密码重置及修复方案 - 网站安全

来源:自学PHP网    时间:2015-04-17 14:11 作者: 阅读:

[导读] aspcms会员中心的某些页面,对用户的验证存在缺陷,修改cookie后提交即可重置任意用户的帐号信息。#39;member/reg.aspdim action : action=getform(action,get)if action = reg then addUser()el......

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 www.2cto.com
       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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论