Web漏洞(三)认证功能相关漏洞
认证信息泄露
明文传输
漏洞描述
低中危漏洞,传输数据包含明文密码、链接、明文身份证、明文地址、用户身份标识等其他敏感信息。
漏洞挖掘
1)使用抓包工具进行挖掘,GET、POST请求传输的数据都可以很清晰的在Burpsuite上看到。
修复方式
1.涉及敏感数据,先进行加密后,再进行传输。
会话变量泄露
漏洞描述
高危漏洞,登录、验证等页面的隐藏域中存在密码信息。
漏洞挖掘
1)查看网页源代码,寻找隐藏域中是否存在密码等信息。
注:隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。
基本语法:<input type="hidden" name="field_name" value="value">
修复方式
1.禁止在前端页面中保存密码等敏感信息。
认证信息猜解
弱口令
漏洞描述
高危漏洞,弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的互联网账号受到他人控制,因此不推荐用户使用。
漏洞挖掘
1)登陆处,可以使用工具进行爆破,走HTTP协议未使用验证码或二次验证可以使用Burpsuite的Intruder模块,如果有验证码或二次验证,Burpsuite也有相关的插件进行爆破,还可以使用PKAV Fuzze,其他协议如FTP,ssh,telnet等可以使用‘’弱口令爆破工具“、hydra等。
2)弱口令漏洞的挖掘主要在于字典的大小,以及密码本和系统的使用者的关联程度。在渗透的过程中,可以收集使用者的相关信息,如:生日,邮箱,手机等信息生成社工字典进行爆破,网上社工字典生成的工具很多。
修复方式
1.用户层面
不要使用常见的弱口令作为密码。
不要多个系统或者社交账号使用同一套密码。
定期修改密码。
建议使用包含随机值的或者随机生成的字符串作为系统密码。
2.系统层面
用户首次登录后强制用户修改默认密码。
修改密码、添加账号等涉及密码策略处强制用户使用强密码策略(大小写字母+数字+特殊字符+8位以上)。
服务端对登录处增加图形验证码并保证使用一次即销毁。
服务端对登录接口进行限制,单个IP单位时间内请求超过阈值,封禁30分钟。
服务端对登录接口进行限制,单个用户密码单位时间内错误次数超过阈值,封禁20分钟。
暴力破解
漏洞描述
中危漏洞,登录模块无验证码或二次认证,可暴力破解。
漏洞挖掘
1)BS架构暴力破解,直接看就可以看出来有没有使用验证码或二次认证。
2)C/S架构暴力破解,尝试爆破,看有没有限制登陆次数,一般都可以无限次数的进行登陆尝试。
修复方式
1.暴力破解是破解密码最常用的手段,设置高强度密码:密码的长度、数字、字母和特殊符号的组合,能增加爆破的难度。
2.限制暴力破解的最佳方法是限制无效登录的次数,让攻击者只能在有限的时间点尝试密码。
认证功能失效
空口令
漏洞描述
高危漏洞,认证登录环节允许空口令,未设置密码,直接可以使用账户名登陆系统。
漏洞挖掘
1)获得用户名后,直接登陆系统进行尝试。
修复方式
1.尽量不使用空口令,设置复杂的密码。
2.必须用空口令的话,可以采取2种办法:一是修改默认端口、后台登陆的路径(藏起来);二是限制登录ip。
认证绕过
漏洞描述
高危漏洞,绕过认证是指攻击者不通过认证页面就进入后台页面操作。
低危漏洞,攻击者不通过认证页面就进入后台页面但无法进行操作。
漏洞挖掘
1)目录扫描,敏感目录访问,查看前端源码寻找链接。开发人员没有做好对后台内部的相关链接的访问控制,有些路径可以直接访问,且可以操作系统。
修复方式
1.后台目录最小化权限设置。未经认证,合法授权无法访问,操作系统。
Oauth认证缺陷
漏洞描述
Oauth认证,好文。
高危漏洞,Oauth认证不完全,可越权登录他人账户。可导致用户资源任意访问或任意账户登陆或用户密码获取
漏洞挖掘
1)指纹:应用请求的URL中含有oauth的相关信息,如 /oauth/、/oauth2/ 上面文章写到了oauth2使用了state用于防御CSRF。测试redirect_uri、client_id是否可控。例如:
GET https://accounts.google.com/o/oauth2/auth?scope=gmail.insert gmail.send
&redirect_uri=https://app.example.com/oauth2/callback
&response_type=code&client_id=812741506391
&state=af0ifjsldkj
修复方式
1.使用CSRF token。state参数保证整个流程的完整性
2.重定向URL(redirect URIs)要在白名单内
3.通过client ID将authorization grant和token request确保在同一个client上发生
4.对于保密的client(confidential client),确保client secret不被泄露。不要将secret随代码一起发布
IP地址伪造
漏洞描述
通过伪造IP地址能够绕过应用IP地址限制,访问和执行系统相关功能。
高危漏洞:访问重要系统/执行重要功能
中危漏洞:访问非重要系统/执行非重要的功能
漏洞挖掘
1)使用代理软件拦截请求包,修改HTTP头中的Host字段,伪造IP地址绕过限制。
2)使用代理软件拦截请求包,修改HTTP头中的X-Forwarded-For字段,伪造IP地址绕过限制。
修复方式
1. 使用getServerName()代替getHeader(“Host”);
2. 在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法Host header,或者在Apache和Nginx里指定一个ServerName名单;同时,Apache开启UseCanonicalName选项。
身份标识缺陷
认证功能滥用
多点认证缺陷
漏洞描述
低危漏洞,系统允许同一用户在多个相同终端进行身份认证。例如不同浏览器可以在同一时间登录同一账号。
漏洞挖掘
在浏览器 A 和浏览器 B 使用同一个账号登录系统,如果在同一时间段内,两个浏览器登录的账户均可正常操作,则说明系统存在多点认证缺陷。
修复方式
在不影响业务的前提下,关键业务系统应禁止多点认证。当同一账号在其他地方登录时,已登录的账号的登录状态应失效,并提示用户账号在其地区登录,可能存在账号被盗风险。
会话固定
漏洞描述
中危漏洞,当用户成功验证而应用程序不更新cookie时,这个时候就存在会话固定漏洞,攻击者可利用此漏洞发起会话劫持。
漏洞挖掘
只需查看登录前和登录后的会话ID是否一致即可。
修复方式
应用在用户验证成功后,先让原来的会话ID失效,然后提供一个新的会话ID给用户。
本文来自博客园,作者:九天揽月丶,转载请注明原文链接:https://www.cnblogs.com/-meditation-/articles/16080426.html