首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

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

2020-01-18

做浸透测验有一段时刻了,发现登录方面的问题特别多,想做个比较全面点的总结,我尽量写的全面点又适宜新人,这篇文章或许需关键想象力,由于问题比较多我不或许去海找各种比方举出来,不过好在会上网就遇到过各种登录框,所以咱们都比较了解

web登录认证方面,从子功用上能够划分为登录框登录、忘掉暗码、修正暗码、验证码、发送手机验证码、发送邮箱验证码、注册账号、登录信息过错提示、账号确定等等小功用组成,每个web站点的登录大约由上面小功用的悉数或许一部分组成。

先从最根底最常见的开端罗列列:

登录框账号暗码服务端耐久化:当你翻开登录页面发现账号暗码现已填好了,点击登录直接进后台哈哈

修正计划:保存账号暗码处理的逻辑针对本地,session及时毁掉

信息走漏:登录框供给个示例用户名,比方示例邮箱、手机、用户名规矩导致黑客把握规则生成字典

修正计划:不显现示例用户名

sql注入:用户名字段或许暗码字段存在sql注入,比较典型的是全能暗码登录

修正计划:运用参数绑定方法查询和预编译句子,假如运用各种结构依照结构安全开发的要求编程

XSS:用户名或暗码字段存在XSS,比较典型的是反射XSS打自己

修正计划:运用各种XSS过滤库编码库,详细请百度,本文不是XSS专题

账号暗码暴力破解:黑客经过东西或许脚本加载账号暗码字典不断测验登录

修正计划:增加验证码

用户枚举:输入不对的用户名提示暗码不存在,输入对的用户名提示暗码过错,然后枚举用户名

修正计划:运用含糊的过错提示,如用户名或暗码不正确

账号确定:用户爆炸的时分过错次数过多确定账号,然后黑客批量测验用户名导致大部分用户名被锁

账号概况走漏:提交合法用户名,服务器回来关于用户名相关的账号、身份、暗码等详细信息

修正计划:运用验证码方法防爆炸,尽量不要运用登录次数太多确定的方法,或许设置短时确定

低频撞库爆炸:运用脚本以慢频率耐久爆炸,针对约束频率数字比较大的防护战略

修正计划:运用验证码机制

易辨认:验证码杂点太少或许没有杂点导致能够用程序辨认出验证码的内容

验证码前端生成:验证码是用js做的,用js生成点随机字符填充到前端dom

独自验证:验证码和需求验证的参数不在同一个http恳求,导致验证码认证成功后进行进犯,比方验证码成功后抓到正在的用户名暗码的恳求进行暴力破解

置空:当验证码的值或许参数置空的时分,能够直接认证,这是服务端逻辑判别少了一个验证码为空的判别

验证码复用:同一个验证码能够不限次数的运用,或许验证码用完没毁掉,导致能够爆炸或许恣意注册

前端显现:服务端生成的验证码不是图片,而是字符串直接回来到前端

恣意值:阻拦到http恳求,对验证码的值设置恣意值都能经过验证码验证

优先级低:同一个http恳求到服务端今后验证码不是最早验证的,比方先验证用户名,导致用户枚举

打码渠道:运用打码渠道调用验证码接口获取验证码进行辨认,回来验证码

修正计划:验证码有必要要在服务端生成增加杂点搅扰项并满足歪曲以图片格局回来前端,前端带验证码和需求验证参数在一个恳求里发送到服务端,服务端榜首优先级先验证验证码的存在性和正确性,一个验证码运用一次后毁掉

前端显现:服务器生成的验证码回来到页面前端,导致前端能够看到发生验证信息走漏

复杂度低:由4位数字组成的验证码,假如服务端没次数约束能够枚举出来进行登录或许注册

zha_蛋:经过脚本不断向验证手机号或许邮箱发送短信或许邮件,导致接收方承受很多废物信息

账号确定:单个手机或邮箱必定时刻超越某次数确定必定时刻,自动化批量确定账号

不匹配:比方同恳求用户名和手机不匹配但仍旧发送验证码,导致能够向恣意号码发短信

资费耗费:有单个手机号次数约束,运用很多不同手机号短时刻内发送数万级短信

修正计划:验证码要有必定的复杂度,至少6位,不能回来前端,根据根据客户端session进行次数约束,拟定适宜的确定战略,比照账号和绑定的手机邮箱是否匹配

账号枚举:你输入用户名提交今后体系提示用户不存在等

认证方法篡改:输入合法用户名今后输入其他邮箱或许手机能够承受到验证码

验证码绕过:图片验证码或手机验证码和被重置的账号不在同一恳求或许运用文中技能绕过

用户枚举:经过重置接口判别用户是否存在,获取用户名

恣意账号重置:体系经过用户名和暗码俩参数进行暗码重置,导致恣意账号暗码都能重置

认证方法篡改:输入合法用户名,运用黑客的邮箱或许手机接收到体系重置的暗码

修正计划:判别账号和绑定验证方法的合法联系,重要恳求中要带有验证码机制,对不存在或许不正确的账号选用含糊的报错提示信息

用户枚举:注册时体系提示用户名已注册,批量枚举用户

验证码绕过:运用正确的图画验证码或许手机邮箱验证码后,再提交注册信息,其他绕过方法见上文

sql注入:注册字段没有预编译参数绑定,导致注入

手机验证码爆炸:手机或许邮箱的验证码太短,不健壮被暴力破解

修正计划:把验证码和注册信息在同一恳求提交,服务端优先验证验证码是否正确,验证码机制见上文

经过上文各种安全绕过技能,咱们能够测验一种或多种手法绕过验证码、手机验证等等,总会有各式各样的小缝隙被组合绕过从而进行进犯,详细的看认证机制运用了哪些防护办法,比方是否运用图片验证码、手机验证码、用户枚举、等等吧

上文中,关于认证的进犯绕过那么多,那么样的认证机制是安全的?上面重放进犯那么多,什么是对立重放进犯最有用的手法?

关于能够运用脚本或许程序自动化进犯的,最有用的防护手法便是验证码!!

怎么尽或许的避免各种逻辑绕过的缝隙?最好削减人造石过程,乃至把需求认证的参数全放一个http恳求中!

关于参数过滤,能够运用正则匹配就运用正则,比方邮箱、手机、***运用正则验证,完全能够避免sql注入XSS这些

关于不能运用正则匹配的,对参数运用owasp等安排开源的过滤库避免XSS

关于同一个http恳求的参数,验证码具有最高优先级验证,验证码验证时要验证其存在性、参数的存在性、一次性

尽量不要运用接口,由于接口一般不能运用验证码

往前端回来信息,运用最小信息准则,只回来必要的信息

登录功用:把用户名暗码和其他需求的字段放前端让客户一同填写,然后放到同一个http恳求提交给后端,后端判别是否有验证码参数,然后判别验证码是否正确,再然后正则判别部分字段,不能正则的对参数进行过滤转码,然后运用参数绑定和预编译查询数据库,犯错或许不存在的提示前端用户名或许暗码过错,这样就避免了自动化进犯和SQL注入信息走漏等等

暗码重置功用:把验证码、用户名、认证因子放到同一个http恳求中,优先验证验证码的存在性、正确性、一次性,其次对参数进行正则格局验证、之后对不能验证参数进行过滤编码、验证用户名和认证因子的匹配性、最终再触发相关功用

上面两种状况,即便进犯者想撞库、确定账号、批量重置等操作,也会由于验证码而只能影响个位数的账号,对体系全体影响不大。

其他功用同理,要结合实际的场景进行规划,即可把危险操控到最小!

热门文章

随机推荐

推荐文章