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给用户。

Web漏洞(四)业务相关漏洞

posted @ 2022-03-31 09:56  九天揽月丶  阅读(655)  评论(0编辑  收藏  举报