dedecms 验证码的漏洞

dedecms在验证完验证码的正确以后并没有注销掉session里面的验证码结果,导致可以在session生命周期内无限用第一次获取的验证码

文件 /dede/login.php 和 /plus/feedback.php 存在漏洞,其他有验证码的地方估计也是有的

部分代码如下:

/dede/login.php 行 62-112

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051if($dopost=='login'){$validate empty($validate) ? '' strtolower(trim($validate));$svali strtolower(GetCkVdValue());if(($validate=='' || $validate != $svali) && preg_match("/6/",)){ResetVdValue();  //************这里注销了验证码************//ShowMsg('验证码不正确!','login.php',0,1000);exit;else {  //********而验证码正确的时候直接开始查询数据库没有注销掉验证码***//$cuserLogin new userLogin($admindir);if(!empty($userid) && !empty($pwd)){$res $cuserLogin->checkUser($userid,$pwd); //successif($res==1){$cuserLogin->keepUser();if(!empty($gotopage)){ShowMsg('成功登录,正在转向管理管理主页!',$gotopage);exit();}else{ShowMsg('成功登录,正在转向管理管理主页!',"index.php");exit();}} //errorelse if($res==-1){ShowMsg('你的用户名不存在!',-1,0,1000);exit;}else{ShowMsg('你的密码错误!',-1,0,1000);exit;}} //password emptyelse{ShowMsg('用户和密码没填写完整!',-1,0,1000);exit;}}$safe_gdopen}

测试:

1.打开后台登录页面,输入一个错误的帐号密码,输入正确的验证码,先不登录把浏览器的图片功能关闭,然后登录会提示帐号密码错误

2.我们再回到登录界面,这时候验证码已经可以重复使用了,直到服务器的SESSION生命周期结束,当然登录成功的话就不测试了

评论的地方测试也是这样

利用:

1.暴力破解后台帐号密码,比较鸡助啊!

2.无限提交评论,无聊啊!

发表评论

电子邮件地址不会被公开。 必填项已用*标注