加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

Web登录认证类漏洞分析防御总结和安全验证机制策划探讨

发布时间:2022-05-30 09:15:56 所属栏目:安全 来源:互联网
导读:做渗透测试有一段时间了,发现登录方面的问题特别多,想做个比较全面点的总结,我尽量写的全面点又适合新人,这篇文章可能需要点想象力,因为问题比较多我不可能去海找各种例子举出来,不过好在会上网就遇到过各种登录框,所以大家都比较了解 先从最基础最常
         做渗透测试有一段时间了,发现登录方面的问题特别多,想做个比较全面点的总结,我尽量写的全面点又适合新人,这篇文章可能需要点想象力,因为问题比较多我不可能去海找各种例子举出来,不过好在会上网就遇到过各种登录框,所以大家都比较了解
 
         先从最基础最常见的开始列举列:
 
         登录框
 
         登录框账号密码服务端持久化:当你打开登录页面发现账号密码已经填好了,点击登录直接进后台哈哈
 
修复方案:保存账号密码处理的逻辑针对本地,session及时销毁
信息泄露:登录框提供个示例用户名,比如示例邮箱、手机、用户名规则导致黑客掌握规律生成字典
修复方案:不显示示例用户名
sql注入:用户名字段或者密码字段存在sql注入,比较典型的是万能密码登录(大家都知道)
修复方案:使用参数绑定方式查询和预编译语句,如果使用各种框架按照框架安全开发的要求编程
 
易识别:验证码杂点太少或者没有杂点导致可以用程序识别出验证码的内容
验证码前端生成:验证码是用js做的,用js生成点随机字符填充到前端dom
单独验证:验证码和需要验证的参数不在同一个http请求,导致验证码认证成功后进行攻击,比如验证码成功后抓到正在的用户名密码的请求进行暴力破解
置空:当验证码的值或者参数置空的时候,可以直接认证,这是服务端逻辑判断少了一个验证码为空的判断
验证码复用:同一个验证码可以不限次数的使用,或者验证码用完没销毁,导致可以爆破或者任意注册
前端显示:服务端生成的验证码不是图片,而是字符串直接返回到前端
任意值:拦截到http请求,对验证码的值设置任意值都能通过验证码验证
优先级低:同一个http请求到服务端以后验证码不是最先验证的,比如先验证用户名,导致用户枚举
打码平台:使用打码平台调用验证码接口获取验证码进行识别,返回验证码
修复方案:验证码必须要在服务端生成添加杂点干扰项并足够扭曲以图片格式返回前端,前端带验证码和需要验证参数在一个请求里发送到服务端,服务端第一优先级先验证验证码的存在性和正确性,一个验证码使用一次后销毁
手机和邮箱验证码
 
前端显示:服务器生成的验证码返回到页面前端,导致前端可以看到产生验证信息泄露
复杂度低:由4位数字组成的验证码,如果服务端没次数限制可以枚举出来进行登录或者注册
zha_蛋:通过脚本不断向验证手机号或者邮箱发送短信或者邮件,导致接收方接受大量垃圾信息
账号锁定:单个手机或邮箱一定时间超过某次数锁定一定时间,自动化批量锁定账号
不匹配:比如同请求用户名和手机不匹配但依旧发送验证码,导致可以向任意号码发短信
资费消耗:有单个手机号次数限制,使用大量不同手机号短时间内发送数万级短信
修复方案:验证码要有一定的复杂度,至少6位,不能返回前端,基于基于客户端session进行次数限制,制定合适的锁定策略,对比账号和绑定的手机邮箱是否匹配。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读