逻辑错误漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现在任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额。下面介绍一下密码重置漏洞。
密码找回验证条件可社工
1 只验证帐号是否存在即可修改密码
2 只验证帐号与邮箱地址是否匹配即可修改密码
3 只验证帐号与手机号是否匹配即可修改密码
密码修改页面可预测
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2012-04190.html
验证码可爆破
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2012-07386.html
修改密码未校验用户
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2012-07888.html
密码重置验证码接收帐号由客户端决定
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0153395.html
修改返回包绕过验证码找回密码
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0128703.html
重置密码新密码出现在返回的数据包中
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0131428.html
密码重置验证码出现在返回数据包中
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0133855.html
密码重置验证码多人公用
案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-091414.html
修复方案
1 减少验证码有效时间
2 使用后即销毁
3 增加验证码复杂程序,整个md5 不困难吧,
4 限制该功能单个ip提交频率
5 对重要参数加入验证码同步信息或时间戳;
6 重置密码后,新密码不应返回在数据包中。
7 接收验证码的帐号由服务端提供,不能信任客户端提交的数据