对于所有系统而言,登录是一个必备的而且最重要的功能。随着系统越来越复杂,服务越来越多,为了方便用户使用系统的服务,SSO应运而生,SSO虽然方便了用户使用系统,也增加了风险。因为一旦登录出现问题,就很容易通过登录访问整个系统。可见,对于登录如果没有控制好,攻击者就可以通过登录攻击系统,对系统造成的伤害会很大,严重的甚至控制整个系统。
由于针对登录的问题对系统造成的影响比较大,所以,攻击者也经常针对登录发起攻击,探索其中可能存在的问题并加以利用。针对登录可能遇到的攻击类型包括但不限于:弱密码、暴力破解、用户枚举、撞库攻击、注入问题、任意重定向等等。本文就是说明这些在登录的实现过程中可能遇到的问题,以及如何有效地解决这些问题。
- 弱密码
弱密码顾名思义就是系统对密码没有严格的要求,有些用户为了使得密码容易记住不会忘记,就设置了一些比较容易记住的密码,例如:12345678,Password等。下图就是一个创建用户的请求消息,可以看到使用的密码很简单也能通过。
通过网站https://www.popularmechanics.com/technology/security/a38305276/worst-passwords-2021/和
Here's 2022's worst passwords — don't use any of these | Tom's Guide和
https://cybernews.com/security/weakest-passwords-2022/,可以看到2021~2023年,这三年最常用的密码依然是123456,它的特点就是超级容易记住。但是,同时也给攻击者带来了方便。关于密码的具体管理方法可以参考:https://blog.csdn.net/jimmyleeee/article/details/124098428。
解决方案:就是强制使用一个安全的密码策略。
- 暴力破解
暴力破解,英文名称Brute Force,它通过尝试不同的用户名和密码的组合来猜测系统内可能存在的用户和密码,这是一种简单但可靠的策略,可以获得对个人帐户、组织系统和网络的未经授权访问。黑客尝试多个用户名和密码,通常使用计算机测试各种组合,直到找到正确的登录信息,然后使用这个登录信息登录系统,对系统发起攻击或者偷取用户的信息和数据。对于一些常用的服务或者软件,一般都有默认的用户名或者密码,一旦探测到这些服务,攻击者也会首先尝试默认的用户名和密码。
暴力破解,包括已知用户名猜测密码、已知密码猜测用户名和不知道用户和密码随机组合猜测。常见的工具,如:Burpsuite 的Intruder和OWASP ZAP等工具,如果拦截具体的请求消息,也可以通过写脚本来发起攻击。
暴力破解虽然简单有效,但是,它有一个致命的缺陷就是流量大的话,容易被探测到;流量如果小的话,效果会比较差。
下图就是一个典型的具有暴力破解漏洞的登录页面,无论怎么输入用户名和密码,系统都会根据输入的用户名和密码给出响应消息。